都道府県穴埋めゲーム

=INDIRECT("N"&MATCH(B2,I2:I3,0)+1)
これでプルダウンリストで選択したマッチする項目の内容を表示させたいのですが
数値は表示されるのですが文字列が別のセルの項目を表示してしまいます

A2プルダウンリスト選択
BBB

L   M   N
AAA 1000  ZZZ
BBB 2000  XXX

=INDIRECT("M"&MATCH(A2,L1:L2,0)+1)
=INDIRECT("N"&MATCH(A2,L1:L2,0)+1)
表示内容
2000
ZZZ

※プルダウンでBBBを選択しているので
2000
XXX
と表示させたい

どうすればよいですか?

A 回答 (2件)

既にfujillinさんにより回答がついており、その回答には、「普通にVLOOKUP関数を用いればすむ話だと思いますけれど。

」と説明されていますが、将にこれが王道だと思います。

VLOOKUP関数を用いた方法であれば、EXCELでも、LibreOffice Calcでも、Googleスプレッドシートでも使用可能だからです。

INDIRECT関数を使用し、LibreOffice Calc、Googleスプレッドシートでは使えないが、EXCELなら使える方法としては「範囲に名前を定義する」方法があります。

添付画像①をご覧ください。L1~M3に画像のようなデータがあり、A2セルにプルダウンからAAA、BBBを選択すると、それに対応したM列(項目1)、N列(項目2)の値をそれぞれA3、A4に表示させるものとします。
まず、L2~N3の範囲を選択した状態で「ALT+M→C→左端列にのみチェック→OK押下」として行に名前を付けます。次にM1~N3の範囲を選択した状態で「ALT+M→C→上端行にのみチェック→OK押下」として列に名前を付けます。そのうえで、A3セルに
=INDIRECT(A$2) INDIRECT("項目"&ROW(A1))・・・(a)
を入れて下方向へコピーしています。

添付画像②をご覧ください。これで、A2セルのプルダウンの選択によって、A3、A4の表示内容が切り替わり、ご希望の結果になると思います。

なお、数式(a)のINDIRECT関数の間にある「半角スペース」は「参照演算子」と呼ばれるもので、範囲の共通部分を示す演算子です。
「エクセル、LibreOffice Cal」の回答画像2
    • good
    • 0

こんにちは



レイアウトがハッキリしませんけれど、AAA、BBB等のデータがあるのは2行目と3行目ではないのですか?
もしそうなら、式中の「L1:L2」がおかしなことになるし、1、2行目にあるのなら、「+1」しているのがおかしいという事になります。

わざわざ揮発性関数のINDIRECT関数を用いていますけれど、普通にVLOOKUP関数を用いればすむ話だと思いますけれど。
https://support.microsoft.com/ja-jp/office/vlook …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A