[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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 >
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
F1 G1
ある なし・・・・F1の値をキーにする
ある ある・・・・G1の値をキーにする
なし なし・・・・ブランクを返す
なし ある・・・・「どうするの?」
G1に数字が入らないことが出てきてうまくいかなくなったんですよね?
そうであれば、上記の4番目のパターンが発生するということですから、その時どうしたいのか提示がないと、今のままではアドバイスでないようにおもうんですが、なんか私が勘違いしてるのかなぁ・・・
(もこな2) 2018/03/08(木) 11:58
上記でちょっとミス
>G1に数字が入らないことが出てきてうまくいかなくなったんですよね?
↓
>逆に言えば、G1に数字が入ってることもあるんですよね?
(「入らなくなった」じゃなくて「入らないことが出てきた」なので、どちらの場合もあり得ると解釈して)
(もこな2) 2018/03/08(木) 12:02
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
上記の式の通りのセルに数値を入力した時はうまくいくのですが、
実際に入力するセルに置き換えると、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
全部標準になっております。
(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(木) 15:01
数式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
これで当てはめたらいけました!!
ありがとうございます。
(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
いけました。有難うございます。
(run) 2018/03/08(木) 16:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.