• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • Excelで「日付・時刻」の複数条件のデータを抽出するには?

    Sheet1に以下のような表があります。 日付__開始__終 了__行き先  7/1__09:00__11:00__江別 7/1__13:00__14:00__岩見沢 7/1__16:00__18:00__旭川 7/2__09:00__12:00__小樽 7/2__13:30__16:00__余市 さて、ここでSheet2のA1に「7/1」と入力すると、 A2からA5に「09:00_18:00_江別_旭川」と出力されます。 また、Sheet2のB1に「7/2」と入力すると、 B2からB5に「09:00_1600_小樽_余市」というように 出力させるようにしたいのです。 つまり、日付別に「最初の開始時刻」と「最後の終了時刻」について それぞれの行き先を求めたいのです。 1日あたりの行き先の件数は2件の日も7件の日もあり、特に 決まっていません。 以上のような出力をするには、どうすれば良いでしょうか? 複数の条件(日付・時刻)を満たす時の結果を抽出する方法が分かりません。 できれば、ピボットテーブルのような難しい操作をせずに求めたいです。 vlookup関数・small関数・large関数あたりが関係ありそうな気がしますが、 アドバイスをよろしくお願いいたします。

  • 複数シートからの抽出

    お世話になっております。 エクセル初心者です。簡単な関数は理解しておりますが、マクロはネットでコピペして加工して使っている程度です。 画像はサンプルです。 シートは50以上あります。 検索用の別シートを作り、検索用シートのA1に現場名を入力し、B1に本支店名を入力し、A2以降に検索結果を抽出し表示したいのです。抽出されるのは、現場名・本支店名・距離のみに限定したいです。 複数シートからの抽出と複数条件ということは可能でしょうか? そのあとはダブルクリックイベントで距離を利用しようと思っているのですが、そちらは自力でできそうです。 皆様からご教示頂きたく存じます。 宜しくお願い致します。

  • エクセルのマクロで検索・抽出したデータを修正及び更新して元データに反映

    エクセルのマクロで検索・抽出したデータを修正及び更新して元データに反映させたい。 Sheet1に元データが行単位で入力されています。。   A   B    C    D    E F 1 日付 顧客名 契約料 担当 回収日 回収金額 2 3 | 50 Sheet2で複数条件でフィルタオプションをマクロで実行し結果を表示ています。   A    B    C   D    E 1 日付~ 日付マデ 顧客名 担当者 2 1/1   2/28     高橋      --------->検索条件 3 4 日付 顧客名 担当 回収日 回収金額 5 -------------------------------------->抽出結果 6 -------------------------------------->抽出結果 7 -------------------------------------->抽出結果 マクロは下記の通りです。 Public Sub 検索() Dim myRow1 As Long, myRow2 As Long '----Sheet1とSheet2のA列で最終行を捜します。 myRow1 = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row myRow2 = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row '----Sheet2のA5以下が入力されていたらクリアします。 If myRow2 >= 5 Then Sheets("Sheet2").Range("A5:P" & myRow2).ClearContents End If '----フィルタオプションの設定で抽出します。 '----元データはSheet1、抽出条件はSheet2のA1:D2、抽出先はSheet2のA4:E4です。 Sheets("Sheet1").Range("A1:F" & myRow1).AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=Sheets("Sheet2").Range("A1:D2"), _ CopyToRange:=Sheets("Sheet2").Range("A4:E4"), _ Unique:=False End Sub 抽出結果の各セルデータを必要に応じて変更・修正(選出結果を直に)をしそれを元データ に反映(上書き?)させるようなマクロを作成したいです。 どなたかご指導よろしくお願いいたします。 うまく説明できないので画像を添付します。

  • 検索したい日付からデータを抽出したい。

    こんにちわ。 キャンペーンが何日~何日までどういった内容がある、という一覧を作成しています。 Aの列が開始日、Bの列が終了日、Cの列がキャンペーン内容、です。 検索したい日付をD1のセルに入力したら、その日付に該当するキャンペーンすべてを別のシートに抽出できないでしょうか・・・ オートフィルタで抽出は出来るのですが、日付を入力しただけで抽出 させたいのですが、無理でしょうか・・・ よろしくお願いします。

  • エクセルデータ抽出方法を教えてください

    エクセルでのデーター抽出方法を教えてください、シート1:A1にUA1と入力し、シート2:A列にはUA1・・・・複数のデータが縦に並んでいます、シート1:A1に入力したデーターを元にシート2:A列を検索し該当するデータの抽出を行いたいです、VLOOKUPではうまく行きません教えてください

  • Excell で、複数のシート間にあるデータを抽出する

    複数のシートの中から、ある共通のひとつのデータを抽出する場合、該当シートを全部選択して検索すれば出ますが、そのあと、これらを改めて新しいシートに記録するにはどうすればよいでしょうか?今はそれがわからないので、検索で出たデータをひとつひとつ見て別シートに入力している状態でじれったいのですが。。。

  • VLOOKUPの検索値について

    エクセルでVLOOKUPの関数を使うときの「検索値」に関する質問です。 この「検索値」が数式結果だと反映されませんよね? そこで範囲指定をして、「値だけコピー貼付」をしたのですが、 やっぱり反映されません。 <sheet1>   A      B      C     D 1 123    りんご    10円    XXX 2 124    みかん    20円    YYY 3 125    めろん    30円    ZZZ 4 126    かき     40円    QQQ   ↑   この「123」や「124」が   別のシートからVLOOKUPで「DのセルがXXXなら123にする」   という数式の結果なんです。 この<sheet1>を利用して、別の<sheet2>に VLOOKUPで「“123”と入力したら“りんご”となる」 というようにしたいのですが、 この“123”“124”が数式結果のため、反映されません。 値だけ貼り付けても反映されません。 上書きで“123”“124”と入力すれば反映されますが 数が多いので困っています。 初心者なので、できるだけわかりやすく教えていただけたら 嬉しいです。

  • 複数のEXCELファイルより結果検索(VLOOKUP)

    はじめましてご教授お願いいたします。 現在エクセル関数Vlookupを使用しているのですが 外部の複数エクセルファイルよりデータを抽出するには どうすればよろしいのでしょうか? エクセルファイルA,B,C,Dがあるのですが ファイルAには結果表示用のシートがあります B,C,Dにはそれぞれデータが同じように配置されおります。 ファイルAのシート2セルA1に以下のような関数を記述しております =IF(ISBLANK(A2),"",IF(VLOOKUP(A2,Sheet1!$A$2:$K$60000,2,FALSE)=0,"",VLOOKUP(A2,Sheet1!$A$2:$K$60000,2,FALSE))) 上記関数[Sheet1!A2:K60000]の部分に別ファイルB,C,Dの データ(範囲は同じ)も検索できるようにしたいのですが どのような関数で可能なのでしょうか? ご教授よろしくお願いいたします。

  • データベースとデータの抽出について

    データベースとデータの抽出について エクセル2003で以下のような、表を作っています。 データは現在、A列に10000万件程度入っています。 4列目の購入日付データの年、月、日がそれぞれのセル(D2、E2、F2) に分割入力されています。 このデータベースから、氏名と購入日付を基準キー にして、顧客NOと購入日付(1つのセルに結合)、 購入商品を抽出し、シート2に転記していきたいです。 抽出方法は、シート2に以下のような形で検索  表示したいです。 (シート2) 氏名(B1に表示)→C1に入力 抽出開始年月日(D1に表示)→年はE1、月はG1、日はI1に入力  抽出終了年月日(D2に表示)→年はE2、月はG2、日はI2に入力 検索後、表示される顧客NOと購入日付、購入商品は 同じシート2の以下のセルに表示したいです。 顧客NO(L1に表示)→L2から下に表示 購入日付(M1に表示)→M2から下に表示 購入商品(N1に表示)→N2から下に表示 したいです。 日付が分割入力されているため、抽出がうまくできません。 氏名、または名字だけでうまく検索できるコードはあるでしょうか。 どうぞよろしくお願いします。

  • excelでの検索・抽出

    excelの質問です。 現在データを1つのファイル、8つのシートに入力したものがあります。 この中に指定したワードがあるか検索し、その検索されたワードと同列にある数値を抽出したいと考えています。 ただし、検索するワードは入力されているものと多少異なるため類似となります。 イメージとしてはexcelにある検索みたいなものです。 この検索機能が同時に複数同時に選択でき、かつ同列のワードを出力したいのです。 イメージ 検索シートに ga123456 re552468  と入力 他のシートに  123456  abe-001 e552468  eet-025  があったとする 入力した横に  123456 abe-001 e552468 eet-025 と出力させたいのですが、可能ですか? 解りづらくて申し訳ないのですが、宜しくお願いします

専門家に質問してみよう