• 締切済み

エクセルで一覧表から検索リストを作成したい

検索日付を入力して検索日より前の日付と名前をリストにしたいのですがわかりません。 やりたいのは、まずA1からA50に日付 B1からB50に名前を入力したリストから検索一覧表を作りたいです。 月別の表も作りたい

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1に一覧表があるとして2行目からデータが入力されているとします。 C列を作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(A2<=Sheet2!B$1,MAX(C$1:C1)+1,"")) シート2に検索リストを作るとしてA1セルには検索日とでも入力し、B1セルに検索の日にちを11/7のように入力します。 A2セルには日付、B2セルには氏名と入力します。 A3セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(A$2="",COUNTIF(Sheet1!$C:$C,ROW(A2))=0),"",INDEX(Sheet1!$A:$B,MATCH(ROW(A1),Sheet1!$C:$C,0),COLUMN(A1)))

すると、全ての回答が全文表示されます。
  • a987654
  • ベストアンサー率26% (112/415)
回答No.1

データがSheet2にあり検索一覧表をSheet1に作るとします。 1.Sheet2のデータはA列の昇順でソートしておきます。 2.Sheet1のA1に検索日付を年月日で入力します。 3.Sheet1のA2:A51,C2:C52を日付書式に設定 4.A2に =IF(OR(A$1<=Sheet2!A$1,MATCH(A$1,Sheet2!A$1:A$50,1)<=ROW()-1),"",Sheet2!A1) B2に =IF(A2="","",Sheet2!B1) C2に =IF(OR(COUNT(A$2:A$51)+ROW()-1>COUNT(Sheet2!A1:A51)),"",OFFSET(Sheet2!A$1,COUNT(A$2:A$51)+ROW()-2,0)) D2に =IF(C2="","",OFFSET(Sheet2!A$1,COUNT(A$2:A$51)+ROW()-2,1)) 5.A2:D2をA3:D51までコピー 以上でA、B列に指定した日以前、C、D列に指定日以後のデータが 出ます。 >月別の表も作りたい そんなのはソートされていることを前提にフィルターで充分でしょう。

すると、全ての回答が全文表示されます。

関連するQ&A