• ベストアンサー

エクセル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

  • エクセルでSearch()関数が使えない

    エクセルVBAで標準モジュールに関数を作って その関数の中で  Search()を使うと 関数が定義されてない、というエラーになります Search()関数は基本的な関数であるし Search(",",str)  とか引数の記入違いであれば違うエラーが出ると おもうのですが? WindowXPでExcel2003を使っています あるいは参照関係かとおもったのですが、  この知識がないのでどう直していいかわかりません 念の為、ツール→参照設定をみてみると 次の4つがチェックマークが付いているのですが ・Visual Basic for Application ・Microsoft Excel 11.0 Object library ・OLE Application ・Microsoft Office 11.0 object library

  • 助けて下さい。IF関数でSEARCH関数を使いとVALUE!を消す方法。

    エクセル初心者の自分が、ネットや本を読んで、 式を作ったのですが、どうしてもVALUE!が出て困っています。 色々、調べてみたんですが、うまくいかないので、どうか お助け下さい。 エクセルのA2セルの中の特定の文字列を検索したくて SERCH関数とIF関数を組み合わせて以下の 式を作ったのですが、VALUE!と出てしまいます。 =IF(SEARCH("株式会社",A2),"1","0") どこが、問題なんでしょう? SERCHの結果はなければVALUE!がでるのでそれを偽と考え、 その場合は0が出るようにしたいのですが・・・。 どうか、お願いします、助けて下さい。

  • EXCELの関数値を取得するには?

    VB.NETでプログラミングしてます。 EXCELを起動してセルに関数を代入し、 セルから関数値を取得するのに、以下のようにしています。 Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet xlSheet.Cells(1, 1) = "=AVERAGE(2,3,4,6,7)" a(1, 1) = xlSheet.Cells(1, 1).value.ToString これはこれで動作するのですが、 よく考えてみるとEXCELのセルに代入する必要はなく、 内部的にa(1,1)に関数値さえ取り込めればいいということに気付いたのです。 1行で記述したいのですが、関数値だけ取得する方法を知りません。 ご教示いただければ幸いです。

  • Excel で CELL 関数が使えない

    Excel for Mac 2011 を使っています。 何も入力されていないシートの A1 セルに「=CELL("row",B1)」と入力して「1」が返されるのを期待しているのですが、「#VALUE!」エラーが返されてしまいます。 ミスタイプしていないか何度も確認し、問題ありませんでした。 ネット上のサポート情報から同様の例をコピペしても同じ結果でした。 「=CELL("type",B1)」と入力してみると正しく「b」が返されます。 CELL 関数は公式のヘルプでも Excel for Mac 2011 でサポートされているようですが、なぜこのようなエラーが発生するのでしょうか?

  • エクセル関数を教えて下さい。

    ROUND関数で除算して、小数点以下を四捨五入させたセル(ROUND(A1/1.05、1))を合計する際、ROUND関数で求めた画面上の整数の合計をさせる関数を教えて下さい。SUM関数を使用すると、除算した小数点以下の数字にて集計されます。

  • Excelの関数式について(IFERROR関数)

    Excelの関数式で、基本的な算数がわからず、質問いたしました。 具体的には、 A1セルとB2セルに整数を入力し、C1セルに 「=IF(ISERROR(ROUND(A1/B1/(1.11831)*1000,2)),"",ROUND(A1/B1/(1.11831)*1000,2))」 という式が入っています。 さらに、D1セルには「=A1*B1」という式が入っています。 この時、D1セル÷A1セル(「=D1/A1」)を計算すると、ほぼ894.2に近しい値となります。 A1セルの値を固定し、B2セルの値をいくつにしても、D1セル÷A1セルの結果が、894.2に近似するのは、なぜでしょうか? お恥ずかしい質問ですが、お知恵を授けてください。

  • エクセル 関数について

    エクセル 関数について 先日こちらでわかりやすい回答を頂いて活用していました。↓ 質問 A1セルには亜、伊、宇、江、尾 などの複数の漢字が入っています。 もしこのセルの中に宇 の字が入っていたら B1セルに○ 入っていなければ× が表示されるようにしたいのですが どんな方法を使用したらよろしいのでしょうか? 回答 =IF(ISERROR(SEARCH("宇",A1)),"×","○") 今回の質問として下記の追加の関数の作り方をどなたか教えて下さい。 A1セルに亜または伊が入っていたら B1セルに○、入っていなければ× 宜しくお願い致します。

  • エクセル関数について

    エクセル関数について質問です。 セルA1、セルA3、セルA5のいずれかに入力された値をセルB1に返すことは関数で可能でしょうか? 可能であれば、IFERROR関数と組み合わせ、エラー値が返らないようしたいです。 エクセルバージョンは2007です。 ご教示ください。よろしくお願いします。

  • Excel 関数 

    明日までに書類を作ってしまいたいので、ご協力ください おねがいいたします。 Aのセル(A10)の右隣のセルに、 =IF(A10=0,"","-") で、A10のセルをツール、オプション、で、0を表示しない。 とした場合、空白になります。 Bのセル =IF(AB12=0,"",ROUND(AB12*AK14/AK15,1)) Bの右隣のセルに、Aのセルと同じ関数をいれると、- が表示されます。 それは、Bのセルに四捨五入の関数があるからでしょうか? Bにも、- を表示しない関数は、あるのでしょうか? Bのセルを、変えないとだめなのでしょうか?

  • エクセル関数

    エクセル関数を教えて下さい。 A×B=Cの計算でCが小数点以下の端数が出る場合、 答えのCを小数点以下を四捨五入して整数にする関数を教えて下さい。 CをROUND関数でDという整数に置き換えるのは分かりますが、乗算の答えCを同じセルで整数にしたいです。よろしくお願いします。

専門家に質問してみよう