• ベストアンサー

EXCELで検索した値の下のセルの値を表示したい

たとえば列で 1郵便番号 2123-4567 3電話番号 401-1234-5678 5趣味 6かくかく 7特技 8しかじか と表示されているとします。 ここから郵便番号を検索し、郵便番号の下のセルの値を表示させるにはどうすればいいでしょうか? また、範囲指定は同じでも、電話番号であればその下の値が表示される方法です。 VLOOKUPやHLOOKUPではかならず検索される場所が範囲の上端や左端なので悩んでいます。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

lookup系の関数では、検索して見つかった値が返ってきますが、見つ けた場所を返す関数もあります。また、範囲内の特定の場所の値を返 す関数もあります。 =match(検索する値, 探す範囲, 探し方) =index(範囲, x行目, y列目, 領域番号) これで例えば =match("郵便番号", A1:A8, 0) とやると 1 が返ってきますので、もう1行下ってことで+1して index関数に代入する =index(A1:A8, match("郵便番号", A1:A8, 0)+1, 1, 1) と、123-4567が返ってくるわけです。 表の端っこ以外のところで検索しなくちゃ行けない場合に、よく使う 方法ですので、覚えといて損はないですよ。

kyuroto
質問者

お礼

解決しました!! ありがとうございました。

その他の回答 (3)

  • Poer
  • ベストアンサー率45% (72/157)
回答No.4

 #1です。私は次のような方法を試してみました。  A7を左上端として、ご質問のような表が入っているとします(仮に表の下端をエクセルの14行目とします)。 (1)関数を入力します。以下、「セル番地・・・ 数式」。  A1・・・ =IF(A2="","条件入力",IF(ISERROR(A4),"不明",A4))  B1・・・ =IF(B2="","",IF(ISERROR(B4),"不明",B4))  B2・・・ =IF(AND(A2<>"",ISERROR(C4)),"該当なし",IF(ISERROR(C4),"",C4))  C2・・・ =IF(COUNTIF(5:5,">0")>=2,"※複数の該当データ","")  A4・・・ ="条件 : "&HLOOKUP(1,6:14,MAX(5:5),0)  B4・・・ ="結果 : "&HLOOKUP(1,6:14,MAX(5:5)+2,0)  C4・・・ =HLOOKUP(1,6:14,MAX(5:5)+3,0)  A5・・・ =IF(ISERROR(MATCH($A2,A7:A14,0)),0,MATCH($A2,A7:A14,0))  A6・・・ =COUNTIF($A5:A5,">0") (2)A5とA6を表の右端の列まで(オートフィルで)コピーします。 (3)A2に条件を入力し、B2に結果が出るかを確かめます。 (4)うまくいったら、4行目から6行目までの行幅をゼロにして行を隠します。 (補足)  A2に、ある項目の結果を入力すると、B2にその一つ下の項目の結果が出ます。  表の行を増やした場合、関数の中の14という数字を表の下端の行数に変更します。  該当データが複数の場合、最も左にあるデータが優先的に表示されます。  お時間があれば試してみてください。

kyuroto
質問者

お礼

試してみようと思ったのですが、 ややこしくて理解できませんでした。 今度時間があるときに使ってみます。 ありがとうございました

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

範囲をずらせばいいのでは? 検索するのが郵便番号なら2行目ですよね =HLOOKUP(検索値,$2:$8,3,FALSE) これで2行目を検索して、対応する列の4行目(電話番号)を表示になります。 別の方法 =LOOKUP(検索値,$2:$2,$4:$4) 検索値を2行目から検索して、対応する4行目を表示 ただし、2行目を昇順にする必要があります。 =INDEX($2:$8,2,MATCH(検索値,$2:$2,0)-1) MATCH関数で列位置を検索してINDEX関数で対応するデータを表示

kyuroto
質問者

お礼

上記の二つは試していたのですがだめでした。 3つ目はためさせていただきました。解決しました。 ありがとうございました。

  • Poer
  • ベストアンサー率45% (72/157)
回答No.1

 郵便番号の下のセルの値というのは、電話番号の値ということでしょうか?もしそうであるなら、実は先程私なりに作ってみて、うまくいきました。しかし残念ながら出勤時間が迫っており、夜までご説明する時間がありません。今日の夜にでも間に合えばお答えできるんですけどね(>◇<)。

関連するQ&A

  • ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

    Excelの関数について質問します。 ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。 なければユーザー定義で作りたいと思っています。 VLOOKUP関数では一番左端が検索されますが、 それをある範囲まで拡張して、 その右隣の値を取得できるようにしたいのです。 どうかお知恵をお貸しください。

  • Excelの関数で、セルの位置情報を出したい

    VLOOKUP HLOOKUPなどで数値を検索して出したあと、 その数値がどのセルに入っているか表示させる関数は組み立てられるでしょうか? 検索範囲内の端から、1、2。。。って表示されるタイプではなく、 A10とかC5とかで出したいです。 さらに、位置を出したセルから、ひとつ下へ下がったセルの数値を参照したい、ということは出来ませんか? VBAは全く分かりません。 関数で出来ないなら諦めます。。。

  • EXCEL2022でVLOOKUP関数の「検索値」に><等の不等式を使って、「近似値」を使いたい!

     EXCEL2022でVLOOKUP関数の「検索値」に、ヘルプでは「近似値」が使えるとあるので、><等の不等式を使って、範囲指定を行い、複数の項目を抽出してきたい!  例として、 (1)2<「検索値」<30、程度で、60項目程を選び出したうえ、 (2)なおかつ、その60項目の中から、オートフィルタ機能を使用し   て、「トップテン」上位の10項目を表示させる方法  を模索中です。  ★実際に、このVLOOKUP関数を使用して、プログラムを作成されている方は、  「検索値」に『範囲指定を行い、複数の項目を抽出できない』ようだと、★たった一つのみの単独の値に対応する単一項目★しか抽出できない為、広範な使用に適さず、従って、たいへん使い勝手が悪い、使用用途の限定される、いわゆる”退屈な機能”とならないでしょうか?  ヘルプより、  VLOOKUP 関連項目 指定された範囲の左端の列で特定の値を検索し、範囲内の対応するセルの値を返します。  書式 VLOOKUP(検索値,範囲,列番号,検索の型) 検索値 範囲の左端の列で検索する値を指定します。検索値には、値、セル参照、または文字列を指定します。  横に”行”を検索して、一致する項目を表示させるものでは、HLOOKUP関数というものも在りますが、私の意図する”使用方法”を満足させる”関数”、343もあれば、一つ位はな~い"かんすぅ~"?(意図した訳ではないのに、やや、字面が、難しい言葉ばかりになってしまったので、"和み系の、普段は言わないジョーク"をネットなので、書き込んでしまいました。やや反省。)(^_^;)

  • エクセルでVLOOKUPを使うとあるセルだけ値複写されてしまう

    こんにちは。エクセルでVLOOKUPを使ってデータを表引きしています。例えば番号を入力すると名前などがセルに表示されます。(そのセルの中にはVLOOKUPの式があり、見た目として名前が表示されます)ですが、あるセルだけセルの中身が関数でなく値が入力されてしまいます。ですので、2回目に番号を入力すると、前の名前が残ってしまい、困っています。どうしたらよいでしょうか。大変困っています。よろしくおねがいします。

  • 特定のセルの値を返す関数を教えてください

    セルの値の検索といえばVLOOKUP関数ですが、 例えば条件にかなったセルの左上の値を返す・・・などといった 範囲が同じ行に無いものを返す関数などというのはあるのでしょうか? 知ってる方がいましたら教えてください。

  • セルの結合がされた表をHLOOKUPで検索する場合について

    Excel初心者です。質問があります。 下記のような表があります       A列   B列   C列   D列 行番号1    12/1       1/1 行番号2  件数   金額  件数   金額    行番号3   2    100   3    200 行番号5   1/1 ここでHlookupを使って下記のように検索します A5に1/1と入力して 件数を検索するには   =HLOOKUP(A5,A1:D3,3) → 3 ここまではいいのですが 金額の「200」を検索するにはどのような関数を使えばよいのでしょうか? ※行番号1の「12/1」と「1/1」はセルの結合をしており 「12/1」のセルはA1、「1/1」のセルはC1になっています。 HLOOKUP関数とVLOOKUP関数又はCOLUMN関数を組み合わせれば出来るのでしょうか よろしくお願いします。

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • Excelで行を複数のセルの値を返す関数を

     いつもお世話になります。 ExcelでたとえばA列に名前、B列に住所、C列に電話番号というふうにデータを入力します。  名前から住所、電話番号というふうに複数のセルを返すにはどうすればよいでしょうか?  Vlookupの検索型で複数のセルの値を返したいのです。  わかりづらい説明になって申し訳ありません。 どうか、御教授よろしくお願いします。

  • エクセル VLOOKUPから、2つ下のセル値を表示させる方法はありますか?

    こんにちは。いつも大変お世話になっています。 うまく説明できなくて申し訳ないのですが・・・。 シート1のセルA5に以下の関数を入れるとします。 =VLOOKUP(A1,シート2!1:100,5,FALSE) この場合に出た答えの、実は2つ下のセルの値をシート1セルA1に表示させるには、どのような式を入れたら良いのでしょうか??

  • VLOOKUPの列番号について

    VLOOKUPを使っていて、疑問に思ったことがありました。 わかる方がいれば、是非教えてください。 なぜ、列番号はセル参照ではいけないのでしょうか? VLOOKUP(検索値, 範囲, 列番号, 検索の型) ヘルプを確認したところ、以下のようなものでした。 【列番号 範囲 内で目的のデータが入力されている列を、左端からの列数で指定します。列番号 に 1 を指定すると、範囲 の左端の列の値が返され、列番号 に 2 を指定すると、範囲 の左から 2 列目の値が返されます 】と、言っていることは理解できるのですが、範囲内といってもセルに番地はあるわけで、それを使っても良いのでは・・・? なぜ、セルの番地ではなく「1列目」なんでしょうか? 説明の足りない文章で大変申し訳ないのですが、何卒よろしくお願いします。

専門家に質問してみよう