B列のデーター(データー形式はランダムな日付)を検索対象として、月曜日のデーター行だけを別シートに抽出する方法(関数orマクロ)を教えてください。
3通りどうぞ
① Excelの機能+weekday関数
C列の数式を
=WEEKDAY(B1)
のようにして、C列で並べ替えてB列の2の行の選択してコピー
② 関数だけで
B列のデータがSheet1の場合は、別シートのセルの数式を
=INDEX(Sheet1!$B$1:$B$100,SMALL(IF(WEEKDAY(Sheet1!$B$1:$B$100)=2,ROW(Sheet1!$B$1:$B$100),100),ROW()))
と入れて、Ctrl+Shift+Enterで配列数式にして下にコピー
③ マクロでSheet1のB列のデータをSheet2のA列に抽出
Sub Macro() Dim i As Long Dim lastRow As Long Dim r As Long With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, "B").End(xlUp).Row r = 1 For i = 1 To lastRow If Weekday(.Cells(i, "B").Value) = 2 Then Worksheets("Sheet2").Cells(r, "A").Value = .Cells(i, "B").Value r = r + 1 End If Next i End With End Sub
たとえば項目は下記のように並んでいたとします
No 年月日 項目名 収入 支出 適用 3 1 2007/4/1 繰越 12,345 4 2 2007/4/10 税金 5,000
G2に「=WEEKDAY(C2,2)」と入力して全ての行にドラッグして数値を表示します
関数ヘルプを見たらわかると思いますが、1と表示されているものが月曜日になります
これをオートフィルタをかけて1の値だけを抽出し、全ての行をコピー、対象のシートにペースト
というのはどうでしょうか
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-filter....
一度でやりたいのであれば他の方法のほうがいいかもしれません
ana logさん
ご回答いただきありがとうございました。
助かりました。
3通りどうぞ
① Excelの機能+weekday関数
C列の数式を
=WEEKDAY(B1)
のようにして、C列で並べ替えてB列の2の行の選択してコピー
② 関数だけで
B列のデータがSheet1の場合は、別シートのセルの数式を
=INDEX(Sheet1!$B$1:$B$100,SMALL(IF(WEEKDAY(Sheet1!$B$1:$B$100)=2,ROW(Sheet1!$B$1:$B$100),100),ROW()))
と入れて、Ctrl+Shift+Enterで配列数式にして下にコピー
③ マクロでSheet1のB列のデータをSheet2のA列に抽出
Sub Macro() Dim i As Long Dim lastRow As Long Dim r As Long With Worksheets("Sheet1") lastRow = .Cells(Rows.Count, "B").End(xlUp).Row r = 1 For i = 1 To lastRow If Weekday(.Cells(i, "B").Value) = 2 Then Worksheets("Sheet2").Cells(r, "A").Value = .Cells(i, "B").Value r = r + 1 End If Next i End With End Sub
SALINGERさん
詳細なご回答いただきありがとうございました。
凄いですね。自分でも出来るようになりたいのですが難しいです。。。
SALINGERさん
詳細なご回答いただきありがとうございました。
凄いですね。自分でも出来るようになりたいのですが難しいです。。。