
VLOOKUP関数を短くしたいのですが可能でしょうか?
【例】
A B C D
1 1 動物 1 いぬ
2 2 ねこ
3 2 果物 1 りんご
4 2 みかん
5 3 車 1 ホンダ
6 2 JEEP
7 4 国 1 日本
8 2 アメリカ
9 5 色 1 あお
10 2 あか
11 6 菓子 1 チョコ
12 2 パイ
13 7 飲物 1 ビール
14 2 お茶
の表があるとき
例えば
B20のセルに 5 色
B21のセルに 2 あか
というようにしたいのですが
やはり「IF」を使って長い数式にしかならないでしょうか?
C列の数値は連番に出来ないのです。
連番に出来れば問題無いのですが…。
どうかよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
もし、ワークシートの表中に列を新たに挿入することができれば、方法はあります。
C列とD列の間に、1列挿入します。各セルに、「=A1&C1」、「=A1&C2」、「=A3&C3」・・・と入力します。
すなわち、新たに各項目を示す連番を作成させます。
今までのD列の内容はE列になっていますので、A20にA列の数値を入れるとすると、B20には「=VLOOKUP(A20,A1:B14,2,FALSE)」、A21に小項目(C列)の数値を入れるとすると、B21には「=VLOOKUP(A20&A21,D1:E14,2,FALSE)」で、それぞれ表示したい項目名が表示されます。
ご質問はこういうことで解決されますでしょうか?
No.4
- 回答日時:
やっとVLOOKUPで出来ました。
偶々運良くDIRECTが使えて実現しました。
(テストデータ)A1:D9
5色1黄
2赤
4紺
6菓子1チョコ
3飴
6クッキー
7飲み物1ビール
3焼酎
5清酒
(入力)E1に大分類コードを入力する。
E3に小分類コードを入力する。
(表示)E2に大分類コードを表示する。
E4に小分類コードを表示する。
(関数式)E2に=VLOOKUP(E1,A1:B9,2,FALSE)
F1(どこでも良いが)に
="C"&MATCH(E1,A1:A9,0)
E4に=VLOOKUP(E3,INDIRECT(F1):D9,2,FALSE)
F1とE4の式がポイントです。
例えばE1に7でE2に飲み物、E3に5でE4に清酒と出ます。
●質問が「VLOOKUP関数を短くしたいのですが」では回答者
が集まらないと思う。Vlookup関数を使うことを当然視しているが、回答者の創意工夫に任せるべきです。たまたま私の回答はVlookupですが。
この質問のタイプ・表題は、私なら「多(2)段検索」とでも名付けます。
imogasiさんありがとうございます。
関数の知識が少ないのでVLOOKUP
しか浮かびませんでした…。
また機会がありましたらよろしくお願い致します。
No.3
- 回答日時:
bucchi-さん こんばんは。
B20に 5 と入れるとC20に 色
さらにB21に 2 といれるとC21に あか と出したいなら、こういう方法もあります。
C20にはvlookupでできますよね
=VLOOKUP(B20,A1:B14,2,0)
C21は
=INDIRECT(ADDRESS(B20*2+B21-2,4))
これはvlookupと違ってセル位置で計算しています。
元の式は
=INDIRECT(ADDRESS(B20*2-1+B21-1,4))
です。
ADDRESS関数でセル番地(行番号、列番号)を取得し、INDIRECT関数でそのセルの値を取得しています。
tbobiさんありがとうございます。
INDIRECT ADDRESS関数
勉強になりました。
今後の参考にさせていただきます。
ありがとうございました。
No.2
- 回答日時:
こんばんは
>C列の数値は連番に出来ないのです。
この意味が C列通しでは連番とできないが
例のように 項目別には連番となっているのであれば
B20に A列番号入力
C20に式 =VLOOKUP(B20,$A$1:$B$14,2,0)
B21に C列番号入力
C21に式
=IF(AND(B21>0,COUNTA(INDEX($B$1:$B$14,MATCH(B20,$A$1:$A$14,0)):INDEX($B$1:$B$14,MATCH(B20,$A$1:$A$14,0)+B21-1))=1),INDEX($D$1:$D$14,MATCH(B20,$A$1:$A$14,0)+B21-1),"")
B21に合致しない数値を入力した時のエラー回避式は
だけは組込んであります。(C21の前半の2/3はそのための式です)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのVBAで集計をしたい
-
vba テキストボックスとリフト...
-
【画像あり】【関数】指定した...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
エクセルに写真が貼れない(フ...
-
エクセルでフィルターした値を...
-
【マクロ】【相談】Excelブック...
-
【マクロ】数式を入力したい。...
-
【マクロ】元データと同じお客...
-
エクセルのライセンスが分かり...
-
エクセルシートの見出しの文字...
-
セルにぴったし写真を挿入
-
Excelに貼ったXのURLのリンク...
-
【関数】=EXACT(a1,b1) a1とb1...
-
【マクロ】excelファイルを開く...
-
【関数】3つのセルの中で最新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報