VBA 関数 EXCEL&VBA

エクセルで全角文字数を簡単にカウントする方法

エクセルを使ってデータを分析する際、全角文字と半角文字が混在しているデータの中から、全角文字の数だけをカウントしたい場合があります。

本記事では、「エクセル」「全角文字数」「カウント」という3つのキーワードを軸に、具体的な方法を解説します。



全角文字とは?

まず、全角文字とは日本語のひらがな、カタカナ、漢字、全角英数字や全角記号などを指します。
一方、半角文字は英数字や一部の記号などが該当します。

エクセルでは全角文字数を直接カウントする関数は用意されていないため、工夫が必要です。

全角文字数をカウントする基本的な方法

全角文字数を求めるために、以下の手順を使います。

最も簡単な数式を使用する

セル内の全角文字数を直接計算するシンプルな方法として、以下の式が利用できます。

=LENB (A1) - LEN (A1)

この式では、LENB関数がバイト数をカウントする特性を利用して、全角文字を2バイト、半角文字を1バイトとして認識します。
この結果から文字数を引くことで、全角文字の数を取得できます。

複数のセル範囲で全角文字数をカウントする方法

複数のセルを対象に全角文字数を合計したい場合は、配列数式または`SUMPRODUCT`関数を利用すると便利です。
以下に例を示します。

=SUMPRODUCT (LENB (A1:A2) - LEN (A1:A2) )

この式では、セル範囲 A1:A2 の各セルについて全角文字数を計算し、その合計を求めます。

マクロを使った全角文字数のカウント

マクロを利用して関数を作成すると、より効率的に全角文字数をカウントできます。
以下はサンプルコードです。

Function CountFullWidthChars (Target As Range) As Long
_Dim Cell As Range
_Dim Total As Long
_Dim i As Long
_Dim CharCode As Integer
_
_Total = 0
_For Each Cell In Target
__For i = 1 To Len (Cell.Value)
____CharCode = AscW(Mid (Cell.Value, i, 1) )
____If CharCode > 255 Then
_____Total = Total + 1
____End If
__Next i
_Next CellCountFullWidthChars = Total
End Function

この関数を使うと、以下のようにセル範囲の全角文字数を取得できます。

=CountFullWidthChars (A1:A10)


▲全角の文字数が一発でカウントされた!

まとめ

エクセルで全角文字数をカウントする方法は、シンプルな数式を使用する方法からマクロを使用する方法までさまざまです。
特に簡単なケースでは =LENB(A1) - LEN(A1) という式が非常に便利です。

この記事で紹介した方法を活用して、全角文字と半角文字が混在するデータを効率的に処理してください。
みなさんの参考になれば幸いです。

関連記事・広告






-VBA, 関数, EXCEL&VBA
-, ,