[[20180308111703]] 『vlookupでの抽出』(run) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『vlookupでの抽出』(run)

データがA,B,C列にあります。
F1とG1に数字が入り、C列をH1に抽出します。

?@F1のみに数字がある時⇒F1分を抽出
?AF1とG1に数字がある時⇒G1分を抽出
?Bどちらもない時⇒空欄
というようにしたいです。

G1に数値が必ずあったので、=VLOOKUP(G1,$A:$C,3,0)でできていたのですが、入れないことも出てきたのでアドバイスお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows10 >


if(G1="","",VLOOKUP(G1,$A:$C,3,0))

ISERRORを使うとか
(みゅー) 2018/03/08(木) 11:39


 両方入ることはないのですか?
(コナミ) 2018/03/08(木) 11:44

 =IF(AND(F1="",G1=""),"",VLOOKUP(IF(G1="",F1,G1),$A:$C,3,FALSE))
 か?

 コナミさん
 >F1とG1に数字がある時⇒G1分を抽出 
(ねむねむ) 2018/03/08(木) 11:46

 =IFERROR(VLOOKUP(IF(G1="",F1,G1),$A:$C,3,0),"")
 でもいいのかな。
(bi) 2018/03/08(木) 11:49

質問がよくわからず・・・
>G1に数値が必ずあったので〜(中略)入れないことも出てきたのでアドバイスお願いします。

F1   G1
ある  なし・・・・F1の値をキーにする
ある  ある・・・・G1の値をキーにする
なし  なし・・・・ブランクを返す
なし  ある・・・・「どうするの?」

G1に数字が入らないことが出てきてうまくいかなくなったんですよね?
そうであれば、上記の4番目のパターンが発生するということですから、その時どうしたいのか提示がないと、今のままではアドバイスでないようにおもうんですが、なんか私が勘違いしてるのかなぁ・・・
(もこな2) 2018/03/08(木) 11:58


連投ごめんなさい。

上記でちょっとミス

>G1に数字が入らないことが出てきてうまくいかなくなったんですよね?
  ↓
>逆に言えば、G1に数字が入ってることもあるんですよね?
(「入らなくなった」じゃなくて「入らないことが出てきた」なので、どちらの場合もあり得ると解釈して)
(もこな2) 2018/03/08(木) 12:02


F1   G1
ある  なし・・・・F1の値をキーにする
ある  ある・・・・G1の値をキーにする
なし  なし・・・・ブランクを返す
なし  ある・・・・G1の値をキーにする

G1に数値が必ずあったので、=VLOOKUP(G1,$A:$C,3,0)でできていた。
必ずG1に数値が入ってるわけではなくなったけど
G1に数値が入っていたらG1の値をキーにすると解釈してましたが違うのかな
(あああ) 2018/03/08(木) 12:10


皆様すみません、文章が下手で・・・

F1 G1
ある なし → F1の値を入れる
ある ある → G1の値を入れる
なし なし → 空欄

以上になります。
G1のみに数値を入力することはありません。

教えていただいた関数はまだ試せておりません。
取り急ぎご返答させていただきます。
(run) 2018/03/08(木) 12:16


=IF(F1="","",VLOOKUP(IF(G1="",F1,G1),$A:$C,3,0))になるんですかね?
(あああ) 2018/03/08(木) 12:23

IF(F1="","",VLOOKUP(IF(G1="",F1,G1),$A:$C,3,0))

上記の式の通りのセルに数値を入力した時はうまくいくのですが、
実際に入力するセルに置き換えると、F1の値を使う、がうまく反映されません。
#N/Aとなってしまいます。
何が間違っているのでしょうか?

下記のように入れ替えました
=IF(CC2="","",VLOOKUP(IF(CR2="",CC2,CR2),'[データ一覧.xlsx]コード'!$1:$1048576,3,0))
(run) 2018/03/08(木) 13:28


 CC2セルあるいはCR2セルの値は確かにコードシートのA列にあるか?
(ねむねむ) 2018/03/08(木) 13:48

 データが存在しないときに#N/Aというエラーが出ますが、データがあるにも関わらずエラーが出てしまうのですか?
 あと$1:$1048576ってすごい広い範囲取っていますけど、列指定でない理由は?

 ねむねむさんから回答がありましたが一応書いておきます。
(bi) 2018/03/08(木) 13:50

 A〜Cにデータはあります。

別のセルで違うものを抽出する時に
=IFERROR(VLOOKUP($CF$7,'[データ一覧.xlsx]コードA'!$1:$1048576,3,0),"")
というものを使用しており、その時は$1:$1048576 でも問題なく使えるのですが、勝手が違うのでしょうか?

$A:$Cにしてもだめでした

確かにAにあります。
CC2はエラーになりますが、CR2に同じ数字を入れたらちゃんと出ます。

新しく登録があれば業も列も増える可能性があるので、全体にしているだけです。
(run) 2018/03/08(木) 13:53


いきなり別シートの参照の話を混ぜられても混乱しちゃうので、とりあえず同じシートということで。

数式1:AND(F1="",G1="")
数式2:IF(数式1,””,G1)
数式3:VLOOKUP(数式2,$A:$C,3,0)
数式4:IFERROR(数式3,"")

入れ子にして
=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),””,G1),$A:$C,3,0),"")
というのはどうでしょうか?
(もこな2) 2018/03/08(木) 14:11


 検索するデータが数字のようなので。
 セルの表示形式が片方は文字列になっていてもう一方のほうは標準または数値になっているということはないか?
 VLOOKUP関数では数値と文字列の数字は別のものと判断する。

(ねむねむ) 2018/03/08(木) 14:17


=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),””,G1),$A:$C,3,0),"")
これだとやはりG1に入っているときは抽出できるのですが、F1のみに入っているときは空欄になります

全部標準になっております。
(run) 2018/03/08(木) 14:21


 念のため確認だがCC2セルとCR2セルに同じ値が入力されているとして。
 =VLOOKUP(CC2,'[データ一覧.xlsx]コード'!$1:$1048576,3,0)
 はエラーになり、
 =VLOOKUP(CR2,'[データ一覧.xlsx]コード'!$1:$1048576,3,0)
 はエラーにならないということだろうか? 
(ねむねむ) 2018/03/08(木) 14:39

別々の式でしたら、大丈夫です
(run) 2018/03/08(木) 14:53

=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),””,G1),$A:$C,3,0),"")
この式の最後の""に、VLOOKUPの式を入れたらできました!

とても長い式になりましたが。。。
(run) 2018/03/08(木) 15:01


でもこれだと、空欄の時は#N/Aになります
(run) 2018/03/08(木) 15:05

>=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),””,G1),$A:$C,3,0),"")
>これだとやはりG1に入っているときは抽出できるのですが、F1のみに入っているときは空欄になります
ごめんなさい。検索値をF1セルにする数式が足りてなかったですね

 数式1:AND(F1="",G1="")
 数式2:IF(G1="",G1,F1)
 数式3:IF(数式1,””,数式2)
 数式4:VLOOKUP(数式3,$A:$C,3,0)
 数式5:IFERROR(数式4,"")
 ↓
 =IFERROR(VLOOKUP(IF(AND(F1="",G1=""),"",IF(G1="",G1,F1) ),$A:$C,3,0),"")

(もこな2) 2018/03/08(木) 15:09


たびたびすみません。逆だった

数式2:IF(G1="",F1,G1)

=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),"",IF(G1="",F1,G1) ),$A:$C,3,0),"")

(もこな2) 2018/03/08(木) 15:13


=IFERROR(VLOOKUP(IF(AND(F1="",G1=""),"",IF(G1="",F1,G1) ),$A:$C,3,0),"")

これで当てはめたらいけました!!
ありがとうございます。
(run) 2018/03/08(木) 15:18


 >$1:$1048576 でも問題なく使えるのですが、勝手が違うのでしょうか?

 問題はありませんが、シート全体を指定するのはあまり見たことがなかったので…。

 念のため
 =IF(CC2="","",VLOOKUP(IF(CR2="",CC2,CR2),[データ一覧.xlsx]コード!$1:$1048576,3,0))
 ↑をセルにコピペしてもやはりエラーが出てしまいますか?
(bi) 2018/03/08(木) 15:19

=IF(CC2="","",VLOOKUP(IF(CR2="",CC2,CR2),[データ一覧.xlsx]コード!$1:$1048576,3,0))

いけました。有難うございます。
(run) 2018/03/08(木) 16:17


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.