- ベストアンサー
エクセルデータを取り出す
エクセルで訪問予定を作成しようと思っています。 それで、下記のような表を作成しました。 訪問日を入力して、その訪問日にヒットする会社名とフロアのデータを表から取り出そうと考えています。 しかし、自分がいれた式ではエラーになってしまいます。どこが違うのか教えてください。 「D1」に検索したい訪問日をいれます。 会社名を出す式 =VLOOKUP(D8,A2:C100,1,FALSE) フロアを出す式 =VLOOKUP(D8,A2:C100,2,FALSE) <表> A B C 1 会社名 フロア 訪問日 2 A社 2F 10/7 3 B社 3F 10/21 4 C社 5F 11/1 5 D社 6F 10/1 6 F社 2F 10/1 7 G社 5F 10/21
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>自分がいれた式ではエラーになってしまいます。 エラーの原因は三つ考えられます。 一つは確定的な原因で、VLOOLUP関数の検査値はNo.1,2回答のとおり参照範囲の最左列でなければならない、つまり、A~C列の並びは訪問日→会社名→フロアでなければならないこと。 二つめは確定的ではありませんが、もしかしたら訪問日列に入力されたデータの表示形式(文字列か日付かなど)とD8に入力するデータの表示形式に違いがあるかも知れないこと。 (これを検査するには訪問日列のデータをD8にコピペしてみると分かります。) 三つ目は致命的なことですが、VLOOK関数では同じ検査値があった場合、一番上の列のデータしか答を返さないよい宇こと。つまりD8が「10/1」のときは「D社」「6F]というしか返ってこないということです。 したがってこういう表の場合はVLOOK関数は使えないということです。 ではどうしたらよいかというと、いろいろありますが、最も簡単なのは訪問日の列を全選択、データ→フィルタ→オートフィルタをクリックし、右側に現れた▼をクリックして該当のデータ(訪問日)を選択することです。 また、該当データだけを計算などの表として活用したいときは、編集→ジャンプ→セル選択をクリックして、可視セルをチェックしてOKという方法もあります。するとその分だけがあたかも単独の表として使える訳です。
その他の回答 (4)
- zenjee
- ベストアンサー率47% (50/106)
No.3zenjeeです。 何度も何度もすみません。他にもタイプミスがありました。謹んでお詫び、訂正させていただきます。m(_ _)m 10行目右端の「一番上の列」は「一番上の行」の間違い。 12行目左「というしか返ってこない」は 「という答しか返ってこない」でした。 何しろタイピングが苦手で……… ハズカシー。/(。◇。)\
- zenjee
- ベストアンサー率47% (50/106)
No.3zenjeeです。 No.3回答中、入力ミスがありましたので訂正します。 11行目の のデータしか答を返さないよい宇こと。は のデータしか答を返さないということ。 の誤りでした。すみません。
- papayuka
- ベストアンサー率45% (1388/3066)
VLOOKUPは検索値が一番左に無いとダメです。 訪問日 会社名 フロア 会社名を出す式 =VLOOKUP(D8,A2:C100,2,FALSE) フロアを出す式 =VLOOKUP(D8,A2:C100,3,FALSE) 順序を変更出来ない場合は、Index関数など組み合わせます。
- banzaiA
- ベストアンサー率16% (100/595)
D8ではなくてD1でいかがでしょうか? VLOOKUP関数は データは左端のデータ列で昇順に並べ替えておきます。 その左端のデータを検索するのですから、データ表を再考してください。