• ベストアンサー

エクセル2002 SEARCH関数について

エクセル2002 SP3です。 SEARCH関数を使用して不思議な現象があります。 セルに =SEARCH("~*","=ROUND(630*0.97*40,0)") とすると 11 が表示されます。 ここで セルA1に =ROUND(630*0.97*40,0) として =SEARCH("~*",A1) の結果は #Value! となります。 Excel2002では仕方が無いのでしょうか? あるいは当方の Excel2002 が異常なのでしょうか? それとも SP4 以降があって対応できているのでしょうか? http://support.microsoft.com/ を見てもよくわかりません。 ご存知の方がおいででしたら宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

別に問題ないように見えますが。 =SEARCH("~*","=ROUND(630*0.97*40,0)") は、文字列「=ROUND(630*0.97*40,0)」の中で「*」を始めから検索してその位置を返します。「*」の位置は11番目ですね。合ってます。 A1に、 =ROUND(630*0.97*40,0) と入れると、A1は「24444」です。 =SEARCH("~*",A1)で「*」を検索してもありませんね。 それで「#Value!」になります。 「11」を期待するなら、A1に文字列として「=ROUND(630*0.97*40,0)」を入れないといけません。頭に「'」をつけみてください。

Sinogi
質問者

お礼

ありがとうございました。考え直してみます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

"=ROUND(630*0.97*40,0)" という文字列の中で*は11番目です A1に=ROUND(630*0.97*40,0)とした場合A1の値は24444になりますので *は現れませんから#Valueとなります A1の先頭に ' を入力して文字列にすると同じ11が結果として出ます。 SEARCHの対象となっている文字列が違うと言うことですね。

Sinogi
質問者

お礼

そっか。関数のネストと同じ考え方ですね。うっかりしてました

すると、全ての回答が全文表示されます。

関連するQ&A