• ベストアンサー

エクセルで2byte文字を含むセルのみ抽出したいのですが…。

いつもお世話になっています。 環境はWindows2000pro/EXCEL2000です。 以下のようなリストがあります。    A 1 12abあ 2 3A456 3 abcde 4 漢字 5 111  … 約4000行あります。 この中で2byte文字を含むセルのみ抽出し、 B列に○を付けたいのですが、 (上記リストの場合、B1,B2,B4に○) うまくいかず困っています。 4000行手作業は効率も精度も悪くなりそうです…。 2byte文字の入る位置はランダムで、文字も 特定ではありません。 うまくいく方法があれば教えてください。 よろしくお願いいたします。

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

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

=IF(LEN(A1)<>LENB(A1),"○","") LEN(A1) でA1セルの文字数(5文字)が出ます。 LENB(A1) でA1セルのバイト数(6バイト)が出ます。 全て半角文字であれば文字数とバイト数が等しくなりますが、 全角文字が混ざると文字数よりもバイト数が大きくなりますので、 そのセルを拾って○を付けます。

mochigasukida
質問者

お礼

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

その他の回答 (2)

  • arare2005
  • ベストアンサー率31% (63/199)
回答No.3

X1 = StrConv(???, vbFromUnicode) こんな感じで、1バイトの文字数を数えます。 通常は、そのままの文字数を取得すれば、変換前後の文字数の違いで判断出来ると思います(^^)

mochigasukida
質問者

お礼

回答ありがとうございます。 Xには列が入るのでしょうか?VBAでしょうか? 不勉強な自分が恥ずかしい。 エクセル道精進して挑んでみたいと思います。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

B1に以下の式を入れて下までコピーしてみてください。 =IF(LEN(A1)<LENB(A1),"○","")

mochigasukida
質問者

お礼

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