検索/行列関数のデータ出力に関する問題

このQ&Aのポイント
  • 検索/行列関数を使用してセルに他の表のデータを出力させる際、時々違うデータが出力されてしまいます。
  • 問題の関数はLOOKUPを使用しており、適切なデータを返すことができない場合があります。
  • より確実なデータの返却を行う関数を探しています。
回答を見る
  • ベストアンサー

検索/行列関数のことでお聞きします。セルに他の表のデータを出力させる関

検索/行列関数のことでお聞きします。セルに他の表のデータを出力させる関数を組みましたが、時々違うデータが出力されてしまいます。どなたかお教えください。 =IF(C1="",LOOKUP(K1,表1!C1:C10,表1A1:A10),VLOOKUP(C1,表1!A1:C10,2,0)) (1)C1が空欄ならK1のデータと同じものを表1のC列より探し合致したデータのA列のデータを出力する。(2)C1にデータが入力されていればそのデータと合致するものを表1の左端の列(A列)より探し合致したデータのB列のデータを出力する。 (1)の作業がいまひとつで違うデータを出力してしまうことがある、LOOKUPの性質上やむ終えない感じのためVLOOKUPのように確実にデータを返す関数を探しています。VLOOKUPのようにA列ではなくC列を参照してデータを探す関数(参照するれてを指定できる)を探しています。 長くなりましたがよろしくお願いします。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 LOOKUP関数はVLOOKUP関数とは違って、検索の型が指定出来ない点が不便ですね。  御質問の様な場合は、INDEX関数とMATCH関数を組み合わせると良いと思います。 =IF(C1="",INDEX(表1!A1:A10,MATCH(K1,表1!C1:C10,0)),VLOOKUP(C1,表1!A1:C10,2,0))

taisyoyose
質問者

お礼

アドバイスありがとうございました。 アドバイスいただいたものではうまくいかなかったのですが、INDEX,MATCH関数を使用することがわかり本などを参考にうまくいきました。どちらも使ったことのないものだったのでまったく気づきませんでした。御礼が遅くなり申し訳ありません。今後もよろしくお願いいたします。 =IF(C1="",INDEX(表1!A1:A10,MATCH(K1,表1!C1:C10,0),2),VLOOKUP(C1,表1!A1:C10,2,0))

その他の回答 (1)

noname#146179
noname#146179
回答No.1

LOOKUPも、VLOOKUPも、末尾に ,falseを入れると、絶対に一致するデータしか呼ばなくなります。 =IF(C1="",LOOKUP(K1,表1!C1:C10,表1A1:A10,FALSE),VLOOKUP(C1,表1!A1:C10,2,0,FALSE)) ただし、この場合、一致しないデータが解答の場合、エラー値が表示されるので、空白にしたい場合は 答えがない時は空白にという式を加えるか、印刷設定でエラー値を表示しないにするか? エラー値の種類によって、表示してしまうので空白の式を入れた方が確実ですが・・・ それと、参考までになのですが、データ部分 表1!○○:○○ ですが、範囲名を付けてしまった方が式を入力する時や範囲を変える時に楽ですよ。

taisyoyose
質問者

お礼

アドバイスありがとうございました。 試してみたのですが、式に引数が多すぎるというエラが出てしまいうまくいきませんでした。どこか入力し間違えたのかもしれません。 御礼が遅くなり申し訳ありませんでした。次回もよろしくお願いします。

関連するQ&A

  • 表引きの関数で困っています

    よろしくお願いします VLOOKUP関数ですが うまく表引きできません  2列の表でA列B列にデーターをいれた表があります D1には 式 =vlookup(D1,A1:B10,2,false))です D1にA1からB101での表を参照して 数値を引っ張っています いつもはうまくいきますが A1が 通し番号の場合はOKで ランダムな数値になりますと 引っ張れません 同じ数値が複数あると 最初のものだけ ひろいます 通し番号でなくて ランダムな数値でも 引っ張るにはどんな関数なんでしょうか サルにもわかるように やさしく 教えてください  

  • Excel検索関数で

    説明下手なのでわかりにくいかもしれませんがお願いします。 VBAを使わず、エクセルの関数のみを使って表のデータを抜き出し並びかえる作業をしてます。 表は複数あり、あらかじめ決められた順番に列を抜き出し、新たなシートに表を作ってます。 抜き出す時にVLOOKUPを使用しています。 抜き出す先の表にも検索値の列が存在してます。 一番最初にB列に基準となる列を抜き出し、B1を検索値、 抜き出したい列のある表を検索範囲(仮に○○!A1:C5とします) 抜き出す列は1列目(A列)なので1、 検索の型はFalseにします。 以上を式にすると、 =VLOOKUP($A1,○○!$A$1:$C$5,1,0)となってるのですが、 目的のA列が抜き出せません。 ちなみに、同じ式をオートフィルで引っ張るので絶対参照させてます。 また、抜き出す列より後の列が抜き出せないような状態です。 これでわかりますでしょうか? VLOOKUPじゃなくてもいいので何か方法はありませんでしょうか? 説明わかりにくくてすみません・・・

  • Excelでのデータ検索関数について

    Excelでのデータ検索について悩んでいます。 例えば、A列では「あ~お」、B列では「A~H」でC列ではデータが入っている場合でA列の「い」、B列の「C」のデータを検索したいときはどのように関数を組み合わせれば良いでしょうか?色々試したのですがなかなかうまくいきません。vlookup、index関数で組み合わせてできるのでしょうか?やはりVBAでしか無理なのでしょうか? どなたかご存知の方、ご教示ください。

  • 2つの条件から1個のデータを導き出す関数が分かりません。

    excelで売上集計表を作っているのですが、関数が分からなくて困っています。VLOOKUPやDSUMなどは知っているのですが、2つの条件から1個のデータ抽出する方法が分かりません。 (例)サイズ+色 → 該当する値段  など 【列】カラー 【行】サイズ → 【交わるセル】値段 という表(1)が参照元として有ります。 その参照表とは別に表(2)として、【A列】には購入者を【B列】カラー 【C列】サイズ と入力していく管理表で【D列】に同じ行の「カラー」と「サイズ」を参照して、別表(1)の価格を自動表示できるような関数を入力したいのです。このようなケースの場合どのような関数を入力すればよいのでしょうか。

  • データを表にする関数を教えてください。

    1果物A1,ナシ 2果物B4,リンゴ 3果物C2,モモ 4果物A1,モモ 5果物C2,リンゴ というデータがあって、それを  ABCDE 1 2 3 4 の表に関数で挿入したいのですが、できますでしょうか?データは200行ぐらいあります。 vlookupでA1で引っ張ると一種類しか引っ張れないので… 表は、ひとつのセルに2つ入らなくてもいいです。とりあえず表的な形になればよいです。 お願いします。

  • EXCEL関数/別シートのセル番地をセルの値で指定

    お世話になります。 どうしてもわかりません… エクセル名人の皆様、どうかお知恵をお貸しくださいませ。 Sheet1に下記のようなデータが約5000件あります。   A  B  C   D … BP  … 1 No. ID. 品目 月日…状況 … 2 1 a33  A  3/4   0    3 2 a87  B  5/11  1   このうち、BP列が1のもの約900件のみがSheet2に抽出されています。 (このためのマクロについて前回質問させていただきました) Sheet2:   A  B  C   D   E  F  G  … 1 No. ID 品目 月日             2 2  a87  B  5/11              3 7  b3  K  2/5 4 18 c44  F  12/1 5 11 r93 J 7/28 ちなみにA列のNo.は1,2,3,…と続く通し番号で、だぶりはありません。 Sheet1のデータの項目数は大変多いのですが、Sheet2にはその項目すべては必要でないため、 Sheet2には上記のとおりAからD列までの必須情報のみ抽出し、 E列以降の情報については、必要な列の情報のみ、 A列の通しNo.で紐づけしてVLOOKUP関数で取得したいと考えています。 しかし、Sheet1の表には空欄があり、これを空欄のまま表示させるために IF関数を使いたいのですが、 Sheet1の参照元のセルの番地をどう書けばいいでしょうか? とてもわかりにくくて申し訳ありません… たとえば、Sheet2のA列が18であれば(上記Sheet2のA4)、 元データはSheet1の19行目にあることになります。  A列の数値+1、が行番号ということです。 そのK列を参照する場合、 =IF(Sheet1!K19="","",VLOOKUP(A4,Sheet1!A:K,COLUMN(K4),FALSE) となるかと思うのですが、 このSheet1!K19 というセル番地を、自分で計算して手入力するというのはとても大変なので、 関数などで表現する方法はないでしょうか。 たとえば、Sheet1!K(A4+1) とか書いてみましたが、もちろんこれでよいわけもなく… 不勉強で恐縮ですが、どうしてもわかりません。 どうかご教授ください。 よろしくおねがいいたします。

  • EXCELで表のデータを検索する関数について教えてください

    下のような表データを検索する関数表現について教えてください。 ネットなどで調べてlookup系、match等でやれないかと試しましたが うまく行かず困っています。ご教授お願いします。 A6セルに「熊本」、A7セルに「3,0000」と記入すると、表を検索し A8セルに「熊本-名古屋」と表示するようにしたい。  A    B   C  D 1     東京 名古屋 大阪 2 鹿児島 50,000 40,000 35,000 3 宮崎  45,000 35,000 30,000 4 熊本  40,000 30,000 25,000 5 福岡  30,000 20,000 15,000

  • excelでデータ検索

    excelでのデータ検索をする関数について教えてください。 例えば下のような4列の表があるとします。   A B  C D  東京 1 社長 あ  東京 1 部長 い  大阪 1 課長 う  大阪 2 部長 え A~C列の値をキーにして、D列の値を見つけたいのですが (例えば(東京,1,部長)なら「い」という風に。) 何か使える関数はあるのでしょうか。 lookup関数とかだと、1列の値しか対象にできないので..。 よろしくお願いします。

  • EXCELでLOOKUPがうまくいきません。

    EXCEL2000です。解説書を見ながら、検索関数のVLOOKUPと LOOKUP関数を比較していたのですが、VLOOKUPだとうまくいくのですが、LOOKUPだと望むべき答えが出ません。D列にC列の値をA1:B4の表から参照するという簡単なものです。 この式で、単純に答え(D欄)が1、2、3、4となるべきだと思うのですが・・以下の具合です。  A B C D 1○ 1 ○ =LOOKUP(C1,$A$1:$A$4,$B$1:$B$4)答4  2× 2 × =LOOKUP(C2,$A$1:$A$4,$B$1:$B$4)答2 3△ 3 △ =LOOKUP(C3,$A$1:$A$4,$B$1:$B$4)答3 4□ 4 □ =LOOKUP(C4,$A$1:$A$4,$B$1:$B$4)答2 どこがおかしいのでしょうか?よろしくご指導ください。

  • VLOOKUP関数で検索値について

    VLOOKUP関数で検索値が文字列(数値)でデータ範囲の左端列が数値(文字列)の場合、結果は#N/Aとなります。 どちらかのデータを文字列または数値に変換して一致させなければ結果が得られないのでしょうか

専門家に質問してみよう