[[20120514000339]] 『抜き出し』(こまったちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『抜き出し』(こまったちゃん)
 A列には1行目に見出し「受領月日」から下に月日が100ほどランダムに入力されています。
 B列には1行目に見出し「受領時間」がランダムに入力されています。
 C列には1行目に見出し「品名」が入力されています。
 D1に書かれた月日の「受領月日」「受領時間」「品名」を
 E2に「受領月日」F2「受領時間」G2に「品名」を若い順に抜き出して欲しいのですが、
 関数、マクロ両方の方法を教えてください。
 よろしくお願いします。


 マクロのほうを。いろいろな処理方法があるけど、フィルターオプションと並び替えで。
 勝手に、指定日付はD1ではなくD2にした。D1はA1の見出しと同じものをセットしておいて。

 Sub Sample()

    Columns("E:G").ClearContents
    Range("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("D1:D2"), CopyToRange:=Range("E1"), Unique:=False
    Range("E1", Range("E" & Rows.Count).End(xlUp)).Resize(, 3).Sort Key1:=Columns("F"), Order1:=xlAscending, Header:=xlYes

 End Sub

 (ぶらっと)

 ぶらっと様ありがとうございました。
 1日中考えてもわからなかったので投稿しました。
 感謝してます。
 これでゆっくりと寝れます。
 本当にありがとうございました。
 (こまったちゃん)

 >関数、マクロ両方の方法を教えてください。

 関数案。

	A	B	C	D	E	F
1	受領月日	受領時間	品名	受領月日	受領時間	品名
2	5月7日	10:00	A	5月4日	13:00	H
3	5月3日	9:00	B		18:00	C
4	5月4日	18:00	C		22:00	F
5	5月5日	15:00	D			
6	5月10日	17:00	E			
7	5月4日	22:00	F			
8	5月3日	20:00	G			
9	5月4日	13:00	H			
10	5月10日	11:00	I			

 D2に検索値
 E2 =IF(COUNTIF($A:$A,$D$2)<ROW(A1),"",INDEX(B:B,MOD(SMALL(INDEX((($A$2:$A$100<>$D$2)*10^16+TEXT($B$2:$B$100,"hhmm")*10000)+ROW($2:$100),),ROW(A1)),10000)))
 F2にコピー。
 E2:F2 下へコピー。

 ※範囲 100行目までにしてます。

 (GobGob)

 GobGob様 バッチリです。
 回答者の皆さんはエクセルというソフトを作成に携わった方々なんですか。
 何でも答えられるなんてすばらしいです。
 本当にありがとうございました。
 (こまったちゃん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.