- ベストアンサー
エクセル リストアップ
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
元データがSheet2にあるなら、請求書シートのA10セルに以下の式を入力してCtrl+Shift+Enterで確定してください。 =IF(COUNTIF(Sheet2!B:B,$A$4)<ROW(A1),"",INDEX(Sheet2!A:A,SMALL(IF(Sheet2!$B$2:$B$1000=$A$4,ROW($B$2:$B$1000),""),ROW(A1)))) 上記の数式でシリアル値が表示される場合は、セルの書式で表示形式を日付に変更して下さい。 元データのC列以降のデータを表示するなら上記の式の「Sheet2!A:A」の部分を「Sheet2!C:C」にして右方向にオートフィルしてください。
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 画像が少し見にくいのでセル番地の違いがあるかもしれません。 一例です。 配列数式を使っていますので、データ量が多すぎる場合はあまりオススメしません。 (別列に作業用の列を設けた方がPCには負担が少ないと思います) 画像の左側がSheet1でSheet1のデータをSheet2に表示するとします。 請求書の会社名は結合セルのA4セルに入力、 列方向はいくつあるか判らないので、とりあえずSheet1のG列まで 行数は1000行まで というコトにしています。 Sheet2のA10セルに =IF($A$4="","",IF(COUNTIF(Sheet1!$B:$B,$A$4)<ROW(A1),"",INDEX(Sheet1!$A$2:$G$1000,SMALL(IF(Sheet1!$B$2:$B$1000=$A$4,ROW($A$1:$A$999)),ROW(A1)),MATCH(A$9,Sheet1!$1:$1,0)))) 配列数式ですので、Shift+Ctrlキーを押しながらEnterキーで確定! この画面からコピー&ペーストする場合はA10セルに貼り付け後 数式バー内で一度クリック! 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピー! ※ Sheet1に空白がある場合は「0」が表示されてしまいますので、Excelのオプションで Sheet2の「表示」 → 「ゼロ値」のチェックを外しておきます。 ※ セルの表示形式は日付等々合わせます。 参考になりますかね?m(_ _)m
お礼
ありがとうございます! 配列数式初めてなので,少し頭がこんがらがっていますが,無事完成できました。 これを参考に,もっと勉強させて頂きます。 本当に助かりました。ありがとうございました。