[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『IFERRORを使うと空欄までがエラーでなくなってしまう』(みやっち)
こんにちは
エクセル2016をつかっています。
データベース とう名前のシートがあるとします。
そのデータベースを使ってD6セルに答えを入れたいのですが、
そのデータベースにD6に対する値がVlookで探しても入っていないので
N/A表示がされます。
しかし、D列には空欄もあり、そこもコピーするとN/A表示がでてきてしまい、
VLOOKで値がないときだけ×をいれたいのですが、どうすればよいでしょうか。
悩んだあげく、下記のようにしたら、今度はすべてが空欄になってしまいました。4時間ほど戦っています。お助けください
=IF(D6="","",IFERROR(IF(B6="",VLOOKUP(A6,データベース!$D$2:$F$2000,2,FALSE),B6,"×"))
< 使用 Excel:Excel2016、使用 OS:Windows10 >
A B C D E F G 1 2 6 A6 6 60 3 B6 A7 7 70 4 × A9 9 90 5 A1 1 10 6 A6 B6 A3 3 30 7 A6 DD A4 4 40 8 B6 DE 9 XX DG
A1に =IF(D6="","",IFERROR(IF(B6="",VLOOKUP(A6,$E$2:$G$2000,2,FALSE),B6),"×"))
=IF(D6="","",IFERROR(IF(B6="",VLOOKUP(A6,データベース!$D$2:$F$2000,2,FALSE),B6,"×")) は、 =IF(D6="","",IFERROR(IF(B6="",VLOOKUP(A6,データベース!$D$2:$F$2000,2,FALSE),B6),"×")) のつもりでは、ないでしょうか? このようになります。
(6up) 2021/07/19(月) 05:06
計算式がわからないシート(この場合入力シートと呼ぶことにします)とは、
別シートでデータベースというエクセルシートがあり、
この【データベース】には【コード】と【金額】だけが歯抜けではなく全部きっちり入っています。
データベースには名前がないところがあります。
この2つのシートは同じブック内に存在しています。
そこで今こまっている【入力シート】がこんな風に歯抜けになっていて、
データベースからコードを基準にVlookをかけながら入れるようにしています。
【入力シート】のAのコードと金額には、歯抜けはありません。
コードと名前は、すべて【データベース】のA列を検索値としています。
データベースの中のコードは$D$2:$F$2000,1にあり、
データベースの中の氏名は、$D$2:$F$2000,2にあります。
以下の【入力シート】で、Eに入れる計算式に困っています。
ただ、毎回歯抜けのところの計算式を、セル右下の+マークをダブルクリックしても
空白の部分でとまってしまい、マクロで自動で最大2000行まで自動でコピーするように
しています。
で、下の入力シートはAとDはほぼ同じものになるのですが
Eをオートコピーすると空白までIFERRORの影響を受けて
空白になってしまいます。
氏名がデータベースにないときに×にしたいのに、このIFERRORのせいで
空白になってしまいますので、
フィルターで空白だけEを選んでも、データベースにない氏名と、空白が一緒になって
でてきてしまって、その後の作業の計算式にも影響がでています。
ですので、Eセルには、Dが空白なら、Eを空白にしたいという願いと
もしBの氏名が空白なら、データベースの$D$2:$F$2000,2からさがして
なかったら×にしたいと思ってできたのが↓になります。(質問時と変えました)
Eには、
=IF(D6="","",IFERROR(IF(B6="",VLOOKUP(A6,データベース!$D$2:$F$2000,2,FALSE),B6),"×"))
といれましたが、相変わらず、空欄も名前なしも、空欄になってしまいます。
コード 名前 金額 Aがデータベースと同じなら Eがデータベースと同じなら 同じコード入力 同じ名前入力、違うなら× 5行目 A B C D E
6行目 12345 空欄 50000 12345 (理想) 佐藤健
34723 空欄 600 34723 (理想) × 92748 宮沢健司 4500 92748 (理想) 宮沢健司
27940 3000 空欄 (理想) ×
空欄 空欄 空欄 空欄 (理想) 空欄
今の表はこんな感じです。長々と申し訳ございませんでした。
IFNAとかいろいろためしたのですが、むつかしくて。。。
(みやっち) 2021/07/19(月) 06:28
申し訳ありませんが、ご提示の表はずれていまして、よく理解できません。
私の表では、A9にXX、B9が空白、のときは、期待値×が戻ります。 =IF(D9="","",IFERROR(IF(B9="",VLOOKUP(A9,$E$2:$G$2000,2,FALSE),B9),"×")) (6up) 2021/07/19(月) 06:41
(みやっち) 2021/07/19(月) 06:47
私の投稿したものは、ご確認されたのでしょうか? 別シートのテストは、わたしは、遠慮します。
シートの該当範囲をコピーし、メモ帳に貼り付け、行の先頭に半角SPACE、次に行番号を半角で入力、 次に半角SPACE、と次々と各行に入力して行きます。 一番上の行の最初に改行をいれ、一行増やし、 SPACEを何個か入力し、下の入力にあわせ、A、再度、SPACE…、B……と入力します。 セル内容が、ながいものは、TAB位置をこえるので、SPACEで調整します。
という手順で、わたしは、ここに投稿しています。 (6up) 2021/07/19(月) 07:15
空欄のはずのB6に対して、空いているセルに=LEN(B6)とすると、 0が戻るはずですが。。。 (6up) 2021/07/19(月) 08:26
>コードと名前は、すべて【データベース】のA列を検索値としています。 ↑ の意味がわかりませんのでスルーしました。
>Dが空白なら、Eを空白にしたいという願い 理想は×になってますけど?
A B C D E 6 12345 50000 12345 佐藤 7 34723 600 34723 × 8 92748 宮沢 4500 92748 宮沢 9 27940 3000 ×
↑ 理想
E6 =IF(A6="","",IF(B6<>"",B6,IFERROR(VLOOKUP(A6,データベース!$D$2:$E$2000,2,FALSE),"×"))) 下コピー
以上 (笑) 2021/07/19(月) 09:04
違うか・・・ >データベースには名前がないところがあります。
入力シートのB列が空白のとき データベースに名前が入力されていなかったら、E列はどうなればいいんですか? ×ってこと?
E6 =IF(A6="","",IF(B6<>"",B6,IFERROR(TEXT(VLOOKUP(A6,データベース!$D$2:$E$2000,2,FALSE),";;×;@"),"×")))
こういうこと?
以上 (笑) 2021/07/19(月) 12:44
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.