• ベストアンサー

EXCELのVLOOKUP関数の特殊な使い方を教えてください。

初めて投稿しますので、宜しくお願いします。 最近会社でエクセルの表を作って欲しいと言われたんですが、元々エクセルとかはあまり得意ではないので苦戦しており、いろいろ調べても解決できなかったのでこちらでご相談させていただきます。 質問内容 EXCELにて型式一覧の表から当てはまる値を自動的に抜き出したい。 セルは以下の通りです。  |  A   |  B  | C | D |  |------|-----|-------| 1 | 型式番号 | 型式  |   値   |  |------|-----|-------| 2 |      |     | max | 10 |  |      |     |-------| 3 |  01   |  a  | min | 20 |  |      |     |-------| 4 |      |     | ave | 30 |  |------|-----|-------| 5 |      |     | max | 40 |  |      |     |-------| 6 |  02   |  b  | min | 50 |  |      |     |-------| 7 |      |     | ave | 60 |  |------|-----|-------| 8 |      |     | max | 70 |  |      |     |--------------| 9 |  03   |  c  | min | 80 |  |      |     |-------| 10|      |     | ave | 90 |  |------|-----|-------| 検索用  |  A   |  B  | C | D |  |------|-----|-------| 15| 型式番号 | 型式  |   値   |  |------|-----|-------| 16|      |     | max▼| 10 |  |------|-----|-------|  上記の検索用のセルに入力したときに自動的に表示できるようにしたいのが今回の質問です。 手順と条件 1.A16の所は型式番号入力する(キーボードやテンキーなどで直接入力) 2.A16のセルに001と入力するとB16に自動的に【a】と表示される(VLOOKUPで処理しています。) 3.次にC16のセルでは入力規則リスト型にして、中の値は【max,min,ave】の3つだけを表示。 4.C16のリストから【max】を選ぶと型式番号001の型式aの値maxに対応している【10】という値が自動的D16に表示される。 5.A2~A4はセル結合。同じようにB2~B4までセル結合しております。 上記のような事は出来るのでしょうか? 説明下手で申し訳ございませんが、何卒宜しくお願い致します。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.3

>宜しくお願いします。 へいへい。では具体的「図」の方に従って・・・ですねぇ。 まず、B2セルですが、これは#2さんの方法で上手くいきますよね。 まあ、別に「範囲」を定義する必要はありませんから、こういう風 にも定義できます。 =VLOOKUP(A2,A10:B18,2,FALSE) (注)FALSEは入れておいたほうが良いです。入れておくと、間違った 形式番号を入力すると"#N/A"と表示されるので分かりやすいです。 で、問題がD10セルですが、これは一筋縄じゃ行きません。まずは前提 として、F2セルを「計算用」として確保します。そこに =A2&C2 と設定して下さい。続けてF10,F11,F12セルに各々 =A10&C10 =A10&C11 =A10&C12 と設定、これをF18セルまで繰り返して下さい(3つをセットにして コピーすると、上手くコピーできます)。同様にG10セルに =D10 と設定し、これをG18までコピーします。コレで準備完了、あとは D10セルに =VLOOKUP(F2,F10:G18,2,FALSE) とするだけです。要は「max,min,ave」だけで検索せず、そのまえの 形式番号も含めた文字列として一気に検索しなさい、ということです。 ただ、このままでは全体に見栄えが良くないですね。F,G列を見えない 場所(例えばAA,AB列とか)に設定してもいいですが、「書式」「列」 「表示しない」として隠してしまってもも問題なく動作しますよ。

vinsent100
質問者

お礼

FEX2053様ご回答誠にありがとうございます。 わざわざ図まで作っていただいて本当にありがとうございます。 実際にご回答していただいた方法を試してみた所、見事できました!! 願っていたものそのものでした。大変助かりました。ありがとうございます。

その他の回答 (2)

  • hiro-ss16
  • ベストアンサー率42% (18/42)
回答No.2

セルを結合している場合、データは結合しているセルの上端、列方向なら左端に入力されています。(これはセル結合を解除してみると分かります。) まず、A2~B10 をドラッグして、「挿入」「名前」「定義」で例えば”A”と表の定義をします。同じくC2~D10 をドラッグして”B”と表の定義をしたとします。 次に、B16 には次の式を入れます。   B16 の式 : VLOOKUP(A16,A,2,FALSE) D16 には次の式を入れます。   D16 の式 : VLOOKUP(C16,B,2,FALSE) 以上ですが、質問の内容に疑問があります。上の表は 01,0203、なのに 手順と検索の2項の説明は 001と3桁になっているのは変ですね。文字列であっても、桁数が同じでないと検索は出来ませんが・・?

vinsent100
質問者

補足

お返事ありがとうございます。 定義という方法を試してみました。 一度やってみたんですが、C16のリストの元の値の指定でC2~C10まで指定するとリストボックスの中には'max','min','ave','max','min','ave','max','min','ave'の9個のリストが出てきました。出来れば'max','min','ave'の3つだけで、 例えば型式番号2の型式bのminは【50】という風に出したいんですが、これは困難でしょうか?何か関数を使えば出来るのでしょうか? 文章中の表が間違いです。画像の方が正しいです。すいませんでした。m(__)m 宜しくお願いします。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

A,B列が「セル結合」しているので、この列のデータを参照すること はできません。少なくともA,B列に該当する「上詰め」のリストを 別に作る必要があります。 ソレが出来れば、後は普通のVLOOKUPの作り方でオッケーです。

vinsent100
質問者

お礼

お返事ありがとうございます。 回答して頂いたんですが、エクセル初心者のため、よくわかりませんでした。 上詰めリストとはどうやって作るんでしょうか?? 宜しくお願いします。