• ベストアンサー

Excel2007 エラーの理由を知りたい

Excel2007を使用しています。 以下の2つの式を作成したのですが、 1は通常通り表示され、 2はVALUEを返してしまいます。 A1には0.1が B1には100000が入っています。 1と2はUPかDOWNかだけの違いです。 この理由が分かる方がいましたら教えて下さい。 1: ="価格は"&TEXT(A1,"0.0#%UPの ")&TEXT(B1,"#,##0円でした") 2: ="価格は"&TEXT(A1,"0.0#%DOWNの ")&TEXT(B1,"#,##0円でした")

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

  • ベストアンサー
noname#99913
noname#99913
回答No.2

面白い事例ですね。初めて見ました。おそらく「DOWN」が書式文字を含んでいるからだと思います。調べたところ、次の文字がエラーになりました。 B D(日) E G H(時) M(月) N R S(秒) Y(年) ( )が付いているのは用途が分かっているものですが、付いていないものも、おそらく未来のバージョンで使うつもりで予約されているではないかと思います。

osaruye
質問者

お礼

わざわざ調べて頂きありがとうございます。 他にも使えない文字などがあるのですね~。 勉強になります。 ありがとうございました!

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

>="価格は"&TEXT(A1,"0.0#%UPの ")&TEXT(B1,"#,##0円でした") は ="価格は"&TEXT(A1,"0.0#")&"%UPの "&TEXT(B1,"#,##0")&"円でした" が普通だろう。 >="価格は"&TEXT(A1,"0.0#%DOWNの ")&TEXT(B1,"#,##0円でした") も ="価格は"&TEXT(A1,"0.0#")&"%DOWNの "&TEXT(B1,"#,##0")&"円でした" Text関数の部分と付加する文字列””の部分は明確に分けるものだ。 間違っても通る理由は#2のご回答のとおりかも知れない。 =TEXT(A1,"d")  はA1が数でもA1の値を日付シリアル値として解釈し、その日付部分を表示する。しかし=TEXT(A1,"#d")はエラー。 %は100倍して表示は#%と並存して有効のようだ。

osaruye
質問者

お礼

数式の方は自己解決していたのですが、 作って頂いた数式も参考にさせていただきます。 ありがとうございます。

回答No.4

ん、ごめん。 >ちなみに%の文字は百分率を表示する記号として割り当てられちゃっている ここは無視して。#2の方が正解だと思うから。

noname#99913
noname#99913
回答No.3

ちなみに、次のようにすればエラーは出ません。 ="価格は"&TEXT(A1,"0.0#%")&"DOWNの "&TEXT(B1,"#,##0円でした")

osaruye
質問者

お礼

数式の方は自己解決していたのですが、 作って頂いた数式も参考にさせていただきます。 ありがとうございます。

回答No.1

Microsoftによると、数値と文字列を混合した書式にしたい場合、 文字列の部分をダブルクオーテーションでくくるんだそうだ。 http://office.microsoft.com/en-us/excel/HP051986791033.aspx つまり、 ="価格は"&TEXT(A1,"0.0#""%DOWNの """)&TEXT(B1,"#,##0""円でした""") と言う感じ。 ちなみに%の文字は百分率を表示する記号として割り当てられちゃっているからそっちの解釈をされちゃうんだろう。> Displaying percentages

osaruye
質問者

お礼

わざわざ調べて頂きましてありがとうございます。 英語のサイトは読めませんでしたが(^-^; 参考になりました。

関連するQ&A