一回も披露したことのない豆知識

いつもお世話になっています。
環境はWindows2000pro/EXCEL2000です。

以下のようなリストがあります。
   A
1 12abあ
2 3A456
3 abcde
4 漢字
5 111
 …
約4000行あります。

この中で2byte文字を含むセルのみ抽出し、
B列に○を付けたいのですが、
(上記リストの場合、B1,B2,B4に○)
うまくいかず困っています。
4000行手作業は効率も精度も悪くなりそうです…。

2byte文字の入る位置はランダムで、文字も
特定ではありません。

うまくいく方法があれば教えてください。
よろしくお願いいたします。

A 回答 (3件)

=IF(LEN(A1)<>LENB(A1),"○","")



LEN(A1) でA1セルの文字数(5文字)が出ます。
LENB(A1) でA1セルのバイト数(6バイト)が出ます。

全て半角文字であれば文字数とバイト数が等しくなりますが、
全角文字が混ざると文字数よりもバイト数が大きくなりますので、
そのセルを拾って○を付けます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
わかりやすい解説までつけていただきまして感謝です。
文字数とバイト数の比較なのですね。
勉強になりました。

お礼日時:2005/12/26 17:23

X1 = StrConv(???, vbFromUnicode)



こんな感じで、1バイトの文字数を数えます。

通常は、そのままの文字数を取得すれば、変換前後の文字数の違いで判断出来ると思います(^^)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Xには列が入るのでしょうか?VBAでしょうか?

不勉強な自分が恥ずかしい。
エクセル道精進して挑んでみたいと思います。

お礼日時:2005/12/26 17:26

B1に以下の式を入れて下までコピーしてみてください。


=IF(LEN(A1)<LENB(A1),"○","")
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
無事にできました!感謝です。

お礼日時:2005/12/26 17:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!