• 締切済み

検索結果が複数のデータを抽出したい。

通常用と特別用の2種類の入力用シートがあります。 これを別シートの出力用シートに反映したいのですがご指導をお願いします。 日付を検索値にしてVLOOKUPで抽出しようとしましたが、検索結果が複数になるので1つしか表示できません。 VLOOKUPの他にやり方があれば教えてください。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

(1)質問の表現が不適当でわかりにくい。 (2)添付の画王が読めない。意味ない。 (1)は同じ日付の在るデータから、日付(1つ)を指定して、データを抜き出したい、で良いのでは。 >通常用と特別用の2種類の入力用シートがあります。 これを別シートの出力用シートに反映したいのですがご指導をお願いします は書く必要なし。 しかし2つのシートのデータから同じ日付でデータを抜き出したとして、両者は融合したいものか。 別のセル範囲(上下など)に出て良いのか、など書くべきだ。 自動で2つの塊のデータ群を融合したものを作るには、VBAでやるしかないだろう。 ーー また関数では条件を付けて抜き出しは、非常に式が複雑になって、初心者には分かりにくい。 コピペして結果を見るしか出来ないだろう。 ーー やはり質問者に相応しいのは、人手でフィルタなどの操作をして、結果を切り貼りして、並べ替えての世界ではないか。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! Vlookup関数とMatch関数の塀用で表示させることがご希望みたいですが、 最初にヒットしたデータのみ表示されますので、今回の場合はINDEX関数を使用した方が良いと思います。 画像が小さくて具体的な配置が判らないので、勝手に↓の画像のような配置でやってみました。 やり方だけ理解していただければよいかな!って思っています。 一例です。 尚、配列数式にしていますので、データ量が多い場合あまりオススメしません。 データ量が多い場合は作業用の列を設ける方法が良いと思います。 ↓の画像でSheet2のA4セルに =IF(COUNTIF(Sheet1!$A$1:$A$1000,$B$1)<ROW(A1),"",INDEX(Sheet1!A$1:A$1000,SMALL(IF(Sheet1!$A$1:$A$1000=$B$1,ROW($A$1:$A$991)),ROW(A1)))) 配列数式ですので、この画面からA4セルにコピー&ペーストする場合はA4セルに貼り付け後、数式バー内で一度クリック! 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これを列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 (Sheet2のA列の表示形式は日付にします) ※ ついでにと言っては失礼ですが、作業列を使った方法も載せておきます。 Sheet1のF2セルに =IF(OR(Sheet2!$B$1="",A2<>Sheet2!$B$1),"",ROW()) という数式を入れ、オートフィルでずぃ~~~!っと下へコピー! (これ以上データはない!というくらいまでコピーしておきます。) そしてSheet2のA4セルに =IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(A1)))) という数式を入れ列方向と行方向にオートフィルでコピーすると 同じ結果が表示されます。 どうも長々と失礼しました。m(_ _)m

関連するQ&A

専門家に質問してみよう