[[20160626123852]] 『任意のデータを抽出して日付順に並べたい』(安藤) ページの最後に飛ぶ

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

 

『任意のデータを抽出して日付順に並べたい』(安藤)

すいません、よろしくお願いします。

sheet1
    A列       B列    C列     D列    E列
1行  日付       氏名   項目1   項目2  項目3
2行 2016/06/26   佐藤   みかん   りんご  すいか
3行 2015/06/12    田中   米      みかん  いちご
4行 2015/07/24    佐藤   米     いちご   なし
5行 2015/12/24   佐藤                くり
6行 2015/07/24   佐藤   麦     ビール   なし
などとあって、

sheet2の
A2セルに佐藤と入力したら、
    A列       B列     C列    D列    E列
1行  日付     項目1   項目2  項目3
2行 2015/7/24    米     いちご   なし
3行 2015/07/24   麦     ビール   なし
4行 2015/12/24                 くり 
5行 2016/06・26   みかん   りんご  すいか

と関数のみで表示されるようにいたいのです。
日付が重複することはありmすが、同じ日付がある場合、その中の順番は問いません。
よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows8 >


関数ではありませんが、フィルタ操作で1分もあればできあがり。

1)シート1のフィルタでB列佐藤を抽出、A列は昇順
2)B列を非表示
3)抽出行をコピペ
4)シート1のB列再表示、
5)シート1のフィルタ解除

(マナ) 2016/06/26(日) 14:32


ありがとうございます。

そうなんです。手作業でやれば済む話だとは思うのですが、
何とかならないものかと思い、質問させていただきました。
(安藤) 2016/06/26(日) 14:37


関数でというのは、やっぱりマクロは使いたくないのでしょうか。
 Sub test()
    Dim データ As Range
    Dim 抽出先 As Range
    Dim 条件 As String

    Set データ = Sheets("Sheet1").Range("A1").CurrentRegion
    Set 抽出先 = Sheets("Sheet3").Range("A1")
    条件 = Sheets("Sheet2").Range("A2").Value

    データ.AutoFilter Field:=2, Criteria1:=条件
    データ.Columns("B").EntireColumn.Hidden = True

    抽出先.CurrentRegion.ClearContents
    データ.Copy 抽出先
    抽出先.CurrentRegion.Sort Key1:=抽出先.Range("A1"), Header:=xlYes

    データ.Columns("B").EntireColumn.Hidden = False
    データ.AutoFilter

 End Sub

(マナ) 2016/06/26(日) 15:55


ありがとうございます。

何とか頑張って解決しました。

(安藤) 2016/06/26(日) 19:55


コメント返信:

[ 一覧(最新更新順) ]


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