• ベストアンサー

エクセルデータを取り出す

エクセルで訪問予定を作成しようと思っています。 それで、下記のような表を作成しました。 訪問日を入力して、その訪問日にヒットする会社名とフロアのデータを表から取り出そうと考えています。 しかし、自分がいれた式ではエラーになってしまいます。どこが違うのか教えてください。 「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

質問者が選んだベストアンサー

  • ベストアンサー
  • zenjee
  • ベストアンサー率47% (50/106)
回答No.3

>自分がいれた式ではエラーになってしまいます。 エラーの原因は三つ考えられます。 一つは確定的な原因で、VLOOLUP関数の検査値はNo.1,2回答のとおり参照範囲の最左列でなければならない、つまり、A~C列の並びは訪問日→会社名→フロアでなければならないこと。 二つめは確定的ではありませんが、もしかしたら訪問日列に入力されたデータの表示形式(文字列か日付かなど)とD8に入力するデータの表示形式に違いがあるかも知れないこと。 (これを検査するには訪問日列のデータをD8にコピペしてみると分かります。) 三つ目は致命的なことですが、VLOOK関数では同じ検査値があった場合、一番上の列のデータしか答を返さないよい宇こと。つまりD8が「10/1」のときは「D社」「6F]というしか返ってこないということです。 したがってこういう表の場合はVLOOK関数は使えないということです。 ではどうしたらよいかというと、いろいろありますが、最も簡単なのは訪問日の列を全選択、データ→フィルタ→オートフィルタをクリックし、右側に現れた▼をクリックして該当のデータ(訪問日)を選択することです。 また、該当データだけを計算などの表として活用したいときは、編集→ジャンプ→セル選択をクリックして、可視セルをチェックしてOKという方法もあります。するとその分だけがあたかも単独の表として使える訳です。

その他の回答 (4)

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.5

No.3zenjeeです。 何度も何度もすみません。他にもタイプミスがありました。謹んでお詫び、訂正させていただきます。m(_ _)m 10行目右端の「一番上の列」は「一番上の行」の間違い。 12行目左「というしか返ってこない」は     「という答しか返ってこない」でした。 何しろタイピングが苦手で……… ハズカシー。/(。◇。)\

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.4

No.3zenjeeです。 No.3回答中、入力ミスがありましたので訂正します。 11行目の のデータしか答を返さないよい宇こと。は のデータしか答を返さないということ。 の誤りでした。すみません。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

VLOOKUPは検索値が一番左に無いとダメです。 訪問日 会社名 フロア 会社名を出す式 =VLOOKUP(D8,A2:C100,2,FALSE) フロアを出す式 =VLOOKUP(D8,A2:C100,3,FALSE) 順序を変更出来ない場合は、Index関数など組み合わせます。

  • banzaiA
  • ベストアンサー率16% (100/595)
回答No.1

D8ではなくてD1でいかがでしょうか? VLOOKUP関数は データは左端のデータ列で昇順に並べ替えておきます。 その左端のデータを検索するのですから、データ表を再考してください。

関連するQ&A