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 (土) |
日付 さん、こんばんは >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 |
教えて頂いたコードを流用させて頂きました。 感謝。 |
>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 |
>C列に、"ge/m/d (aaa)" 形式で並んでいる「文字列」の日付が並んでいます。 "ge/m/d (aaa)" の表示形式と解釈しましたが・・・ |
訂正です。 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 |
ピンク さん、おはようございます。 > Columns("C").AutoFilter Field:=1, Criteria1:=">=" & _ > Format(Sdate, "yyyy/mm/dd"), Operator:=xlAnd, Criteria2:="<=" & _ > Format(Edate, "yyyy/mm/dd") よく見たら、同じ方法の回答をしていました。ごめんなさい。 ところで、どうして日付さんところではこれで動作しなかったんでしょうね。 Me & XL97ではちゃんとフィルタかかりましたけど。(昨日の日付だったので9月が全抽出)。 |
りん さん、こんにちは 取りあえず、ご挨拶だけ(笑) |
とても勉強になります。 親切にありがとうございました。 |
こうちゃんさん、ピンクさん、説明不足でした。 申し訳ありません。教えて頂いたコードでは抽出できませんでした。 抽出したいのは、当月(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 (土) |
日付 さん、こんにちわ。 >抽出したいのは、当月(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 こんな感じです。 |
日付 さん、こんばんわ。 >>抽出したいのは、当月(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 これでも大丈夫でした。 |
おかげさまで、当月抽出ができました。 深く感謝します。 |