Excel関数で範囲内の検索値に基づいて結果を取得する方法

このQ&Aのポイント
  • ExcelのVLOOKUP関数を使用して範囲内にある検索値に基づいて結果を取得する方法について教えてください。
  • VLOOKUP関数では範囲内の検索値が一番右にある場合には結果を取得できないため、他の関数を使用する必要があります。
  • 顧客名・住所・TELを参照する際には、元のデータベースのフィールドの並びを変更することはできず、別の方法を探しています。
回答を見る
  • ベストアンサー

Excelの関数で、このようなことができたら教えてください。

ExcelのVLOOKUP関数を知っているので、使っていたのですが、今回はうまく答えを導くことができません。 VLOOKUPで説明すると、「範囲」にあたる表の一番右に「検索値」があるのです。 この場合、VLOOKUP関数だと答えを出せませんが、ほかにどのような関数がありますか? 質問の内容がわからなかったら聞いてください。 よろしくお願いします。 <念のため補足しておきます> 顧客名/住所/TEL/顧客コード の順に並んでいる表(データベース)を元に、 別の場所に「顧客コード」をキーに、顧客名・住所・TELを参照したいということです。 もとのデータベースのフィールドの並びを変更することはできません。 以上

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.3

>(1)MATCH関数の引数に設定している「D1:D10」というのはどの範囲をさしていますか? 顧客コードの列です。 >(2)あと、INDEX関数に2種類、種類があります。 「範囲,行番号,列番号,領域番号」の方ですが、 領域がひとつしかないので、省略しています。 省略しないで書くと、 =INDEX(A1:D10,MATCH(F1,D1:D10,0),1,1) ですね。

xchoxcho
質問者

お礼

ごめんなさい!できました!!! 列の参照方法が間違っていたのと、合致するデータが存在しなかったことがエラーの原因でした。 本当にありがとうございました!!!

xchoxcho
質問者

補足

たびたびありがとうございます。 (1)の顧客コードの列の件はわかりました。 ただ、上記のようにしていしても、MATCH関数の「D1:D10」の部分を指定した後にエラー表示になり、うまく表示されません。 この部分は、別シートにあるのですが、何か関係しますか? たびたび本当にすみません。 補足をお願いできたらと思います。

その他の回答 (2)

  • masa_019
  • ベストアンサー率61% (121/197)
回答No.2

INDEXとMATCHを組み合わせることで可能です。 例えば、データベースのリスト範囲がA1:D10 A列に顧客名、B列に住所、C列にTEL、D列に顧客コードとします。 F1に入力した、顧客コードから顧客名を検索したい場合 =INDEX(A1:D10,MATCH(F1,D1:D10,0),1) となります。 INDEX関数の3番目の引数を2,3・・・と変化させることで、 リストの2列目、3列目・・・に対応させることが出来ます。

xchoxcho
質問者

補足

お返事ありがとうございます。 さっそくやってみたのですが、うまくいきません。 再度質問させてください。 (1)MATCH関数の引数に設定している「D1:D10」というのはどの範囲をさしていますか? (2)あと、INDEX関数に2種類、種類があります。 「配列,行番号,列番号」と「範囲,行番号,列番号,領域番号」どちらを使用すればよろしいでしょうか? お手数おかけします。 よろしくお願いします。

  • milk111
  • ベストアンサー率30% (228/740)
回答No.1

顧客コードが一番右にあるという事でしょうか? 顧客コードの列をコピーして一番左側に置く事はダメですか?私はよくそうしているのですが… その列を表示したくなければ、印刷時などには非表示にしておけばそんなに目立たなくなると思うのですが… ダメですかね…?すみません…

xchoxcho
質問者

お礼

回答ありがとうございます。 顧客コードは一番右にあります。 それを動かすことはできません。 何かいい方法はないでしょうか???

関連するQ&A

  • Excel HLOOKUP関数のエラー

    会社で顧客リストを作成することになり その顧客リストのコードNo.を入力すると その個々の情報が別のフォームに表示できるように、 HLOOKUP関数を使いデータベースを作りました。 (顧客名・住所・TEL・FAX・担当者・ etc...) しかし、ある顧客のコードを入れると 通常に表示されるところもあるのですが、 中にはコードとは違う客の情報が出てきてしまったり、 またすべて「#N/A」表示になってしまうコードもあったりで、 原因がわからず困っています。 全ておかしな表示になってしまうのなら式がいけないのかなと 思うのですが。。。 これを解消する方法があったら教えていただけないでしょうか。 よろしくお願いします。

  • Excel関数VLOOKUPについて

    ExcelでVLOOKUP関数を使用して顧客コードから 顧客名 顧客住所を表示しようとしていますが 顧客コードがない場合でも顧客コードの近い顧客の データが出ます。    A      B         C          1 顧客コード  顧客名     顧客住所 2 0231234  安部       十日町 3 0331234   佐藤       五日町    4 0431234   山内       入谷      5 0431239   三浦       荒砥      6 0431250   須藤       新井田    D E 1 顧客コード 顧客名 2 0431240   三浦      と出ます E2のセルには =VLOOKUP(D2、A2:C6、2) 顧客コードがない値には顧客名など出ないよう するにはどうしたらいいのかお教えください。

  • エクセル 関数 条件にあったセルを表示したい

    エクセル関数で困っています。 下記のような表があります。商品コードに一致する顧客コードを表示させたいのですが.... 何か良い方法がありますでしょうか? 【表1】 顧客コード  商品コード1 商品コード2 商品コード3 ..6まであります。 05824    A12500  B05040  A25012 02572    B05040  C12500 07050   03058    C12500  B05040 【表2】 商品コード   顧客コード B05040  05824          02572          03058 C12500  02572          03058 A12500  05824 A25012  05824 【表1】の顧客コードと商品コードは別表からVLOOKUPで一定の条件を満たしたものを抽出しています。顧客コードは重複するものはありません。 商品コードは数が多いため、【表1】に表示されている商品コードのみを使って【表2】のように該当する顧客が多い商品コード順に並べ替え して、該当する顧客コードを表示させたいのですが可能でしょうか? 説明不十分な点があるかと思いますがどうぞ宜しくお願いします。

  • エクセル関数について

    エクセルで顧客名簿を作っています。 「顧客名(個人名)」「会社名」「住所」「電話番号」などを横軸にとって、縦に顧客(個人名)毎に入力しています。 完成した表で、何社入力したか数えたいのです。 顧客(個人名)毎に入力しているので、同じ会社名がいっぱいある状態です。その会社名を重複せずに、何社あるのか関数で求めたいのです。 よろしくお願いします。

  • エクセル2000で2列にわたるVLOOKUPをしたいとき

    名前■■電話番号■■■■顧客コード 田中■00-0000-0000■■■00-3256 山本■03-3225-5898■■■00-3698 こんな感じの表があります。約13000行(表1) で一方で電話番号と顧客コードが同一の列にはいっている表があります。 03-9858-5656■東京 03-6598-8574■大阪 02-6985■■■■名古屋 02-3698■■■■仙台 (表2) これは約2000行あります。 で表1において、最初に電話番号を表2からVLOOKUPで表引き、 もしその値がなければ顧客コードで再度表2からVLOOKUPで表引 きしたいと思っています。 この際にはどんな関数をかけばよいのでしょうか?

  • エクセル(VLOOKUP関数)~続です。

    先程の質問の続きになるのですが、 エクセルにデータを入力をしていきたいのですが、数が何万件とあります。まず、コード表が2つあります。(2つのコード表はコード番号が重複しています) 本店が1で支店が2です。 セルAの1に本店コード1を入力したら本店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。セルAの1に支店コード2を入力したら支店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。このようなつくりにはできますか? 店名コード コード番号 種類名  1      1111   りんご  1      1112   ぶどう  2      1111   人参  1      1114   なし  2      1112   レタス 上記のような感じです。コード番号自体は重複しています。ただ店名コードが変わると、種類名が果物と野菜と区別されている感じです。 説明が分かりにくかったら補足致します。すみませんが分かる硬いましたら、ご教示ください。宜しくお願いします。

  • エクセル関数2

    シート(1) A B C D 作業列    コード    顧客名     金額 3        300001     A 10,000 3        300002   B 15,000 3        300003   C 20,000 3        300004   D 25,000 3        300005   E 30,000 4        400001   F 35,000 4        400002   G 40,000  4 400003 H 45,000 4 400004 I 50,000 4 400005 J 55,000         シート(2) A B C D E F 「1」 「2」 「3」 「4」 「5」 「6」 10,000 35,000 15,000 40,000 20,000 45,000 25,000 50,000 30,000 55,000 ※ シート(1)にコード、顧客名、金額を入力すると、シート(2)にあるように該当するコードの先頭行の列に表示するようにしたいと思っています。 シート1で作業列を作りその作業列を基にシート2でVLOOKUP関数を使い‥シート2の10,000のセルの場合、 VLOOKUP(C$2,sheet1!$A$3,$D$12,4,false)として、下にコピーすると同じ金額になってしまいます。 セルが空白にならず、シート1の金額が上から順番にシート2に表記されるようにするにはどうしたらよいでしょうか。マクロはできませんので、関数で詳しく教えて下さい。宜しくお願いします。

  • エクセルの統合について

    エクセルでのデータの統合について教えてください。 表1と表2のデータを統合したものを表3として作成したいのですが、うまく出来ません。  表はこのような感じです。  表1     A     B     C     1  顧客名  住所   TEL     2   あ社     3   い社  表2     A     B        1  顧客名  機種     2   い社     3   え社 共通の項目は、A列の顧客名だけです。 これを下記のようにしたいのですが・・・  表3     A    B    C    D     1  顧客名  住所  TEL  機種     2   あ社     3   い社     4   え社 統合の機能では無理なのでしょうか? ほかにいい方法があれば、教えてください。 よろしくお願いします。

  • エクセルのVLOOKUP関数について

    エクセルのVLOOKUP関数を使用しての集計に関する質問です。 以下の例のような場合の関数が分からず本当に困っております。 どなたかご享受いただけたら幸いです。 よろしくお願いいたします。 毎月サポート費としてお客様ごとに定額が振り替えられ、その集計表を作成しております。 その際振替に使用するプランが2パターンあり、その月どちらのプランになるかは月によってまちまちです。 (同じお客様でも3月はパターン1、4月はパターン2だったりします。) また、振替日は使用するパターンによって異なります。 SHEET1に、 A列 B列 C列 D列 顧客名 金額 振替日 パターン名 という表があり顧客ごとの過去2年分の振替履歴が、1000レコード程並んでいます。 SHEET2でSHEET1の月ごとの集計を出そうと考えております。 表自体は月ごとに分けて作成したいので、表の上部に該当期間をつけます。下記のような感じです。 B2セル C2セル D2セル ○月 開始日 末日 (ex2月) (ex.11/2/1) (ex.11/2/28) A列:顧客名 B列:パターン名 C列:振替日 D列:金額 と並べ、顧客名ごとに、その月のパターン名・振替日・金額を集計したいです。 金額に関しては、SUMIFS関数、振替日に関しては使用パターンさえ出せれば、IF関数で出せると考えています。 パターン名のところでつまづいてしまっています。 行いたいこととしては、SHEET1のA列からD列(顧客名からパターン名まで)の範囲で、顧客名が一致したときに、振替日を抜き取り、振替日がC2(月初日)より大きく、かつD2(月末日)より小さいときのパターン名を表示させたいです。 (1)---------------------------------------------------- =IF(VLOOKUP(A3,sheet1!$A$2:$D$1000,3,FALSE)>$C$2,IF(VLOOKUP(A3,sheet1!$A$2:$D$1000,3,FALSE)<$D$2,(VLOOKUP(A3,sheet1!$A$2:$D$1000,4,FALSE)),"")) といれると、表示されるきちんとパターン名が表示されるセルと空白が返ってきてしまうセルがあります。 空白が返ってきてしまうセルは、双方の顧客名の最後の1文字を消す、スペースを入れる、など何かしら手を加えるときちんと表示されます。 ------------------------------------------------------ その他、VLOOKUP関数、IF関数、ISNA関数などを組み合わせて色々と試してみましたが期間がうまく指定出来ていないようで、当月に振替履歴のない顧客の欄にもパターンが返ってきてしまいます。 下記を教えていただきたいです。 (1)(1)のような状態になる理由と解決法 (2)この場合に使用するのに最適な式 説明が長くなり、またうまく状況を説明できず申し訳ございません。 本当に困っています。ご回答よろしくお願いいたします。

  • エクセルの関数が?分かりません???

    エクセルの↓ような期別で分けてあるシートが4枚あって   A     B    C    D   P   Q     R 1 商品名 カラー名 商品区分名 6月~5月 数量合計 数量平均 2 3 . . 商品名の同じもの同志(それぞれのシートに1つずつあるけど、ないものもあります。)で期の順に新しいシートにまとめて表を作りたいのですが、 関数がわかりません。VLOOKUPだと思うのですが、使い方を間違えているのか全くできなくて困っています。どなたか分かる方どうかわかりやすく教えて下さい。 よろしくお願いします。 

専門家に質問してみよう