• 締切済み

簡単な関数のエラーにいての質問

ご質問させて頂きます。 先程も質問させて頂き、以下の様な解決を見出しました。 #セル(A1)頭7文字と($B$1:$B$150)を比べ 先頭7文字が一緒なら そのセルを表示、偽なら"" 以下、関数 =IF(EXACT(LEFT(A1,7),$B$10:$B$150),A1,"") で、表示されたので、やった! と思ったのですが、オートフィルで引っ張ってみると、 表示されるはずが空白だったり、ヴァリューになってしまうのです。 この式の弱点は何なのでしょうか? 初心者の質問で申し訳ないのですが、どうかご教授お願致します。

みんなの回答

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

前回のご質問はこれですか? http://okwave.jp/qa3425780.html >#セル(A1)頭7文字と($B$1:$B$150)を比べ は前回の質問にはないですね。少なくとも質問に書かれている式は意味をなしていません。EXACT関数は1:1の文字列を比較するものであって、1:nの文字列を比較するものではないからです 質問の趣旨が「A1セルの先頭7文字が、B10:B150のいずれかと一致する場合、A1の値を返し、その他の時は空白を返す」ということであれば、  =IF((A1<>"")*COUNTIF($B$10:$B$150,LEFT(A1,7)),A1,"") あるいは  =IF(SUMPRODUCT((A1<>"")*($B$10:$B$150=LEFT(A1,7))*1)>0,A1,"") を1行目の空いているセルに貼り付けて、下方向にコピーしてください

re2007a
質問者

お礼

ご回答有難う御座いました。何とかなりました! 有難う御座います。

re2007a
質問者

補足

早速のご回答誠に有難う御座います。 すいません。順序が逆でした。 検索対象になるキーになる文字列はA列に(A1)~(An)に縦に並んでいます。 A列を見て、A列のキー7文字とB列にある文字列の頭7文字が一緒だったら 式を入れてある空白C列にA列、B列で一致したB列の文字列を全て、 出力するです。 なので、 =IF((B2<>"")*COUNTIF($A$2:$A$150,LEFT(B2,7)),B2,"") ご回答頂きました方策ですと、「0」が表示されるか、 #NAME?もしくは、空白でした… COUNTIFの前の(B2<>"")*にはどういった意味があるのでしょう? =IF(COUNTIF($A$2:$A$150,LEFT(B2,7)),B2,"") だと、数式が間違っていると出るのですが… すいません。