過去ログ

                                Page      21
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼文字列日付からの抽出  日付 02/8/31(土) 21:45
   ┣Re:文字列日付からの抽出  こうちゃん 02/9/1(日) 0:00
   ┃  ┗こうちゃんさん、ありがとうございます  日付 02/9/2(月) 11:44
   ┣Re:文字列日付からの抽出  ピンク 02/9/1(日) 7:03
   ┃  ┣Re:文字列日付からの抽出  ピンク 02/9/1(日) 7:54
   ┃  ┗Re:文字列日付からの抽出  ピンク 02/9/1(日) 8:10
   ┃     ┣Re:文字列日付からの抽出  りん 02/9/2(月) 9:14
   ┃     ┃  ┗Re:文字列日付からの抽出  ピンク 02/9/2(月) 11:56
   ┃     ┗ピンクさん、ありがとうございます  日付 02/9/2(月) 11:54
   ┗C列にある、EXCEL起動月に該当  日付 02/9/1(日) 10:23
      ┗Re:C列にある、EXCEL起動月に該当  りん 02/9/1(日) 12:28
         ┣Re:C列にある、EXCEL起動月に該当  りん 02/9/1(日) 23:23
         ┗りんさん、ありがとうございました。  日付 02/9/2(月) 11:42

 ───────────────────────────────────────
 ■題名 : 文字列日付からの抽出
 ■名前 : 日付
 ■日付 : 02/8/31(土) 21:45
 -------------------------------------------------------------------------
   C列に、"ge/m/d (aaa)" 形式で並んでいる「文字列」の日付が並んでいます。
オートフィルタでは、文字列のためうまく抽出ができません。
当月(例8月)だけを抽出する方法を教えて下さい。

C1        D1..
   .
   .
H14/7/18 (木)
H14/7/26 (金)
H14/7/29 (月)
H14/8/1 (木)
H14/8/1 (木)
H14/8/2 (金)
H14/8/2 (金)
H14/8/3 (土)
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : こうちゃん <nakajima19@hotmail.com>  ■日付 : 02/9/1(日) 0:00  -------------------------------------------------------------------------
   日付 さん、こんばんは

>C列に、"ge/m/d (aaa)" 形式で並んでいる「文字列」の日付が並んでいます。
>オートフィルタでは、文字列のためうまく抽出ができません。
>当月(例8月)だけを抽出する方法を教えて下さい。
>
>C1        D1..
>   .
>   .
>H14/7/18 (木)
>H14/7/26 (金)
>H14/7/29 (月)
>H14/8/1 (木)
>H14/8/1 (木)
>H14/8/2 (金)
>H14/8/2 (金)
>H14/8/3 (土)

「抽出」が具体的にどうしたいのかがわからないんですが、参考までに・・
C列の1行目からデータがならんでいるとして、当月のデータを選択します。
標準モジュールで試験してみてください。

Sub test()

Dim MaxRow As Long
Dim i    As Long
Dim Temp As Variant

MaxRow = Range("C65536").End(xlUp).Row

For i = 1 To MaxRow
  If CInt(Month(Date)) = CInt(Mid(Mid(Cells(i, 1).Value, _
    InStr(Cells(i, 1).Value, "/") + 1), 1, InStr( _
    Mid(Cells(i, 1).Value, InStr( _
    Cells(i, 1).Value, "/") + 1), "/") - 1)) Then
    Temp = Temp & ",C" & i
    
  End If
Next

Temp = Mid(Temp, 2)
  
Range(Temp).Select

End Sub
 ───────────────────────────────────────  ■題名 : こうちゃんさん、ありがとうございます  ■名前 : 日付  ■日付 : 02/9/2(月) 11:44  -------------------------------------------------------------------------
   教えて頂いたコードを流用させて頂きました。
感謝。
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : ピンク  ■日付 : 02/9/1(日) 7:03  -------------------------------------------------------------------------
   >C列に、"ge/m/d (aaa)" 形式で並んでいる「文字列」の日付が並んでいます。
>オートフィルタでは、文字列のためうまく抽出ができません。
>当月(例8月)だけを抽出する方法を教えて下さい。

こんなんで、どーやろか

Sub Test()
  Columns("C").AutoFilter Field:=1, Criteria1:=">=" & _
  Format(Date, "yyyy/mm/01"), Operator:=xlAnd, Criteria2:="<=" & _
  Format(DateAdd("m", 1, Date) - 1, "yyyy/mm/dd")
End Sub
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : ピンク  ■日付 : 02/9/1(日) 7:54  -------------------------------------------------------------------------
   >C列に、"ge/m/d (aaa)" 形式で並んでいる「文字列」の日付が並んでいます。

"ge/m/d (aaa)" の表示形式と解釈しましたが・・・
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : ピンク  ■日付 : 02/9/1(日) 8:10  -------------------------------------------------------------------------
   訂正です。

Sub Test2()
  Dim Sdate As Date, Edate As Date
  
  Sdate = DateSerial(Year(Date), Month(Date), 1)
  Edate = DateSerial(Year(Date), Month(Date) + 1, 0)
  
  Columns("C").AutoFilter Field:=1, Criteria1:=">=" & _
  Format(Sdate, "yyyy/mm/dd"), Operator:=xlAnd, Criteria2:="<=" & _
  Format(Edate, "yyyy/mm/dd")
End Sub
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/9/2(月) 9:14  -------------------------------------------------------------------------
   ピンク さん、おはようございます。

>  Columns("C").AutoFilter Field:=1, Criteria1:=">=" & _
>  Format(Sdate, "yyyy/mm/dd"), Operator:=xlAnd, Criteria2:="<=" & _
>  Format(Edate, "yyyy/mm/dd")

 よく見たら、同じ方法の回答をしていました。ごめんなさい。
 ところで、どうして日付さんところではこれで動作しなかったんでしょうね。
 Me & XL97ではちゃんとフィルタかかりましたけど。(昨日の日付だったので9月が全抽出)。
 ───────────────────────────────────────  ■題名 : Re:文字列日付からの抽出  ■名前 : ピンク  ■日付 : 02/9/2(月) 11:56  -------------------------------------------------------------------------
   りん さん、こんにちは

取りあえず、ご挨拶だけ(笑)
 ───────────────────────────────────────  ■題名 : ピンクさん、ありがとうございます  ■名前 : 日付  ■日付 : 02/9/2(月) 11:54  -------------------------------------------------------------------------
   とても勉強になります。
親切にありがとうございました。
 ───────────────────────────────────────  ■題名 : C列にある、EXCEL起動月に該当  ■名前 : 日付  ■日付 : 02/9/1(日) 10:23  -------------------------------------------------------------------------
   こうちゃんさん、ピンクさん、説明不足でした。
申し訳ありません。教えて頂いたコードでは抽出できませんでした。

抽出したいのは、当月(PCのシステム時間"m"月に該当する月)で、
例えば、今日はH14/9/1ですから、C列を基準に、C列に存在する、
H14/9/*に該当するものを全て抽出したいのです。

Excelを起動したのがH14/8/30の例の場合、

C1       D1...
   .
   .
H13/12/18 (木)
H14/6/18 (木)
H14/7/26 (金)
H14/7/29 (月)
H14/8/1 (木)
H14/8/1 (木)
H14/8/2 (金)
H14/8/3 (土)
   .
   .

以下のみを抽出したいのです。

H14/8/1 (木)
H14/8/1 (木)
H14/8/2 (金)
H14/8/3 (土)
 ───────────────────────────────────────  ■題名 : Re:C列にある、EXCEL起動月に該当  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/9/1(日) 12:28  -------------------------------------------------------------------------
   日付 さん、こんにちわ。

>抽出したいのは、当月(PCのシステム時間"m"月に該当する月)で、
>例えば、今日はH14/9/1ですから、C列を基準に、C列に存在する、
>H14/9/*に該当するものを全て抽出したいのです。

日付として抽出範囲をしていすれば大丈夫です。
データの範囲が C1:F20 として。

Sub Macro1()
  Dim dt2 As Long, Mdat1$, Mdat2$
  dt2 = Date '今日の日付
  '今月1日( >= なので含む)
  Mdat1$ = Format(DateSerial(Year(dt2), Month(dt2), 1), "YYYY/MM/DD")
  '来月1日( < なので含まない)
  Mdat2$ = Format(DateSerial(Year(dt2), Month(dt2) + 1, 1), "YYYY/MM/DD")
  Range("C1:F20").AutoFilter Field:=1, _
   Criteria1:=">=" + Mdat1$, Operator:=xlAnd, _
   Criteria2:="<" + Mdat2$
End Sub

こんな感じです。
 ───────────────────────────────────────  ■題名 : Re:C列にある、EXCEL起動月に該当  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 02/9/1(日) 23:23  -------------------------------------------------------------------------
   日付 さん、こんばんわ。

>>抽出したいのは、当月(PCのシステム時間"m"月に該当する月)で、
>>例えば、今日はH14/9/1ですから、C列を基準に、C列に存在する、
>>H14/9/*に該当するものを全て抽出したいのです。
>日付として抽出範囲をしていすれば大丈夫です。
>データの範囲が C1:F20 として。

Sub Macro2()
  Dim dt2 As Date
  dt2 = Date '今日の日付
  '
  Range("C1:F20").AutoFilter Field:=1, _
   Criteria1:=">=" & DateSerial(Year(dt2), Month(dt2), 1), _
   Operator:=xlAnd, _
   Criteria2:="<" & DateSerial(Year(dt2), Month(dt2) + 1, 1)
End Sub

これでも大丈夫でした。
 ───────────────────────────────────────  ■題名 : りんさん、ありがとうございました。  ■名前 : 日付  ■日付 : 02/9/2(月) 11:42  -------------------------------------------------------------------------
   おかげさまで、当月抽出ができました。
深く感謝します。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 21