[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『IFERRORの中にIFERROR』(おじさん)
はじめまして。 困っているというわけではありませんが、何故こうなるのかが知りたいです。 A B C D -┼―――――――――――― 1│ あ あ 2│ い い 3│ う う 4│ え え 5│ お お 6│ か か 7│ き き 8│ く 9│ け け
A列には「あ」〜「ん」までの文字が入力されています。 B列に関数を入力するのですが、C列、D列に入力されていない文字を出したいです。 (今回であれば「く」)
■B1に入力している式 =IFERROR(IF(VLOOKUP(A1,$C$1:$C$9,1,0)=A1,""),IFERROR(IF(VLOOKUP(A1,$D$1:$D$9,1,0)=A1,""),A1))
問題なくB8には「く」と答えが返ってくるのですが、 数式の検証を行うと、必ずExcelが固まってしまいタスクの終了をするほかなくなってしまいます。 そもそもIFERRORのエラーの場合の値にIFERRORを使用すること自体が推奨されていない(間違っている)のか、 単にそういった仕様なのか、ご存知の方がいたらお教えいただきたいです。 ※2019、2016、2013(確か2010も)のいずれも同様の症状になってしまいます。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
度々失礼します。
ただ答えを返すだけであれば {=IF(OR(C1:D1<>""),"",A1) とかでもいいのですが、そうではなくIFERRORを組み合わせた場合に処理落ちする理由が知りたいです。
よろしくお願いいたします。 (おじさん) 2019/06/30(日) 23:05
=if(countif($C$1:$D$9,A1)>0,"",A1) ??? (BJ) 2019/06/30(日) 23:11
意味のない事を考えても・・・・。 なんでVLOOKUP。 適材適所。 (BJ) 2019/06/30(日) 23:18
BJさん
Excelを触ったことがない子に色々教えている段階で、その子がこの式を書きました。 おっしゃるようにVLOOKUPで処理をする必要はありませんので、別のやり方を提案しましたが、 「何故エラーになるんですか?」と聞かれた際に答えられませんでした。
そういうもんだ。と教えてしまうのは簡単ですが、 私自身も気になったので質問させていただきました。 (おじさん) 2019/06/30(日) 23:26
因みに提示された数式をやってみたんですけど、普通に動きました。 データは、何行あるのでしょうか? 新規のブックでもそうなるのでしょうか? 他に問題があると思います。 by Win2007 & Excl2007 (BJ) 2019/06/30(日) 23:52
B1の数式の途中経過は、こんなのですね。 ↓ =IFERROR("",IFERROR(IF(VLOOKUP(A1,$D$1:$D$9,1,0)=A1,""),A1)
B8だと、こう。 ↓ =IFERROR(#N/A,IFERROR(IF(VLOOKUP(A8,$D$1:$D$9,1,0)=A8,""),A8))
初めから、その通りに入力したらコケなかったです。
つまり、IFERRORの入れ子が元凶とも言えない。 また、シート上の数式は正しく処理されている。
そうなると「数式の検証」はサービス機能で その充実度が低いと考えるしかないのではないですか?
この機能は昔から、完璧に動作はしていなかったです。
> そういうもんだ。と教えてしまうのは簡単ですが
どう言い含めるかは別として、現実問題として、 プログラムにバグは付きものであることは受け入れるしかないです。
(半平太) 2019/07/01(月) 00:05
BJさん
データに関しては数行であろうと云千、云万行あろうと同じ結果になってしまいます。 また、既存・新規関係なくこの症状が出てしまいます。 ただし、他環境で正しく動作するのであれば、おっしゃる通り他に問題があるのかもしれませんね。
半平太さん ご提示いただいた式だと確かに問題なく検証が出来ました。 Excelにいくつかバグがあることは存じ上げておりましたが、 数式の検証が昔から完璧に動作していなかったのは初めて知りました。 伝え方はさておき、効率の良い式を教えたうえで「場合がある」程度に留めておきます。 ありがとうございました。 (おじさん) 2019/07/01(月) 11:43
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.