[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VLOOKUPの検索値について』(こう)
2つのセルの値を「&」で繋げ(値を結合し)、1つのセルに表示しました。繋げる2つのセルの中でも、2つめのセルに値がないデータもあり、その場合は検索値としては見てくれないようで、VLOOKUP関数を使った時に#NAとなってしまいます。何か対処方法(良い関数)はありますでしょうか。
よろしくお願いいたします。
※「&」ではなく、CONCATENATE関数で繋げてもダメでした。
< 使用 Excel:Excel2002、使用 OS:unknown >
対処ってのは何するの? 空白返すとかどちらかを「含む」で検索するとか。 (GobGob) 2017/05/16(火) 23:09
>2つめのセルに値がないデータもあり、その場合は検索値としては見てくれないようで、 >VLOOKUP関数を使った時に#NAとなってしまいます。
つまり2つめのセルが空白の場合、1つめのセルの値もリストにあるのになぜか#N/Aになってしまう、 そういうこと?
だったらまず考えられるのは、1つめのセルの値が数値では? ということだけど・・・。 具体例を挙げて説明してもらわないとなんとも言えない。
1)2つのセルがA1とB1だとして、例えばC1セルに =A1&B1 という式が入っているということか? 2)2つのセルの値とはそれぞれ具体的にどんなものか? 3)VLOOKUPはどんな式なのか? 4)VLOOKUPが返す値は、数値・文字列どっちなのか? 5)#N/Aになるのは具体的にどんな場合か? 6)Excelのバージョンは「2002」で合っているのか?
とりあえず確認だけ。 (笑) 2017/05/17(水) 13:01
具体的には、1つめのセルには二桁の数字があり、2つめのセルには一桁の数字または一桁のアルファベットまたはブランクです。(このようなデータが複数行あります。)
例として、A1に「10」、B1に「Z」とあり、C1には=A1&B1として「10Z」と表示していますが、B1がブランクの時もあり、その時C1には「10」と表示されます。
検索範囲には、「10Z」とか「10」とあるのですが、C1の「10」を検索値として返してくれない状況です。B1が数字の時はC1には三桁の数字となる訳ですが、同様に返してくれず、B1がアルファベットの時のみ返してくれます。返す値は文字列で、エクセルのバージョンは2002です。
分かり辛い説明でしたら申し訳ありません。
(こう) 2017/05/17(水) 22:14
C1 =A1&B1
A B C 1 10 Z 10Z 2 10 10 3 10 3 103
結果は上のようになるけれど、C2とC3は数値ではなく「文字列の数字」です。 数値を単に「&」でつなげるだけでは文字列の数字になってしまうということ。
見た目は同じ「10」や「103」でも、VLOOKUPの検索値は「文字列の数字」、 参照リストは「数値」なのでエラーになるのです。
対策としては、数式が返すのが数値ならVLOOKUPをSUMIFにするだけでいいかもしれないが、 文字列ということなので、検索値のデータ型を両方同じにするしかないと思われる。
具体的には 1)参照リストの数値を文字列にする(区切り位置機能等で) 2)C1の数式を変更し、B列の値によって数値と文字列に分ける のどちらか。
C1の数式を変更する場合は
=IF(COUNT(A1&B1),(A1&B1)*1,A1&B1) とか =IF(ISERR((A1&B1)*1),A1&B1,(A1&B1)*1) とか。
B1が数式の結果ではないのなら、↓ でもいいかもしれないが、 =IF(ISTEXT(B1),A1&B1,(A1&B1)*1) これだけではA1とB1がともに空白の場合エラーになる。
参考まで。 (笑) 2017/05/18(木) 00:34
ご丁寧な回答感謝いたします。
教えていただいたやり方で上手くいきました。
大変助かりました。
ありがとうございます。
(こう) 2017/05/18(木) 22:40
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.