- ベストアンサー
Excel 文字バイト数を求めた後のIF関数の結果が全角と半角で異なる
日本語Windows 98の環境でExcel2000を使用し、 文字が1バイト文字で30文字もしくは2バイト文字で15文字を超えると「ERROR」と表示される表を作成しました。 列A:文字入力 列B:=LENB(A1) 列C:=IF(B1>30;"ERROR";" ") とした時、私のPCでは、関数の意図通り、 列Aが半角30文字、全角15文字を超えると 「ERROR」と表示されます。 このファイルを別のPCにメールで送りました。 そのPCは、XP(英語環境で日本語使用可能)のExcel2003です。 ファイルを開くと、列Bは正常に計算されてますが、 列Cにおいて列Aが全角文字のみで入力されていた場合、 列Bが30を超える値の時も「ERROR」と表示されません。 この時点では、もともと英語環境のPCなので 全角が認識されないのだろう、と思ってました。 このPCのユーザーが別のPCにファイルをメールで送付しました。 今度は日本語XPのExcel2003です。 列Bは正常に計算されますが、列Cにおいて列Aが全角文字のみで 入力されていた場合、列Bの値が30を超えていても列Cに 「ERROR」と表示されません。 さっきからネットで5時間くらい調べてますが、 このような現象について解説しているサイトはありませんでした。 書式設定やツール-オプションの辺りの設定を変えると できるような気がするのですが、 私はXP環境でExcel 2003を持ってないので、わかりません。 どなたかご存知の方ご教授いただければ助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
》 そのPCは、XP(英語環境で日本語使用可能)のExcel2003です その Excel は英語版(だけど、日本語使用可)ですか、それとも日本語版ですか? その Excel では、日本語版Excel特有の =LENB()関数や =JIS()関数等も使えるのですか? 》 このPCのユーザーが別のPCにファイルをメールで送付しました 送付したファイル(ブック)は「このPCのユーザーが」元のファイルを上書き保存したものではないですか?
その他の回答 (2)
- web2525
- ベストアンサー率42% (1219/2850)
=IF(B1>30,"ERROR"," ") A列の入力に関係なくB列の結果が30以上で必ずERRORになるはずです。 試しにB列に直接数値入力してみてください。 それでERRORと表示されないようならC列の計算式を再入力、それでも変化しないようなら、書式設定か何かで表示されないとか。 新しいシートで計算式を入力しなおしても機能しないなら、エクセルが壊れているとしか思えません。
お礼
ファイル転送先の日本語XPユーザーに一度確認を取ってみます。
- gyouda1114
- ベストアンサー率37% (499/1320)
質問の趣旨が間違っていたらお許しを >列C:=IF(B1>30;"ERROR";" ")とした時、私のPCでは、関数の意図通り、列Aが半角30文字、全角15文字を超えると「ERROR」と表示されます。 疑問点 =IF(B1>30;"ERROR";" ")は数式として入力できますか? 数式を次のように変えればExcel2003の場合でも「ERROR」と表示されます。 =IF(B1>30,"ERROR"," ")
お礼
大変失礼しました、質問に記載したIF関数は自宅PCのOpenOfficeCalcで入力したものをコピペしてました。 質問の表は、会社のPCで作成をしております。 会社ではExcelを使ってますので、回答にある式 =IF(B1>30,"ERROR"," ") で表を作成してます。 質問の趣旨は、列Aが全角文字の時にどうして=IF(B1>30,"ERROR"," ")が機能しないのか、ということです。
お礼
結果報告です。 結局、LENB関数入りExcelファイルは別の英語版XPユーザー(まったく日本語の知識なし)が管理をすることになり(要は、LENBは役立たず)、私が作ったファイルは現時点ではお蔵入りとなりました。 私が最初に日本語版Excelに入力した内容が間違ってなかったことと、LENBは英語版Excelでは使えないということがわかり、勉強になりました。 みなさんありがとうございました。
補足
なるほど、LENB関数は日本語版Excel特有の関数だったのですね。 英語版XPには、英語版Excelが入っており、日本語が使用可能です。 日本語版XPユーザーに、新しいBookを開いて、そこに関数を入れて、どういう値が返されるかを確認してもらう必要がありますね。 明後日会社に行きますので、結果をお知らせします。