職場では、マークは定期的に選択したセルの範囲内のコンマの数を数える必要があります。彼はこのタイプのタスクを実行するExcel関数を見つけることができず、マクロがそのトリックを実行できるかどうか疑問に思っています。

目的のカウントを生成するワークシート関数はありませんが、使用できる数式が1つか2つあります。少なくとも1つのコンマが含まれているセルの数を知りたいだけの場合は、次の数式で問題なく機能します。

=COUNTIF(A1:A10,",")

代わりに、セルごとに複数のコンマが存在する可能性があるときに範囲内のコンマの数を計算する必要がある場合は、別の数式を使用する必要があります。

=SUM(LEN(A1:A10))-SUM(LEN(SUBSTITUTE(A1:A10,",","")))

この数式は配列数式として入力する必要があります。つまり、Ctrl + Shift + Enterを使用して数式を入力する必要があります。別の範囲のカウントを導出する必要がある場合は、数式の2か所で範囲を変更するだけです。

必要に応じて、コンマの数をカウントするユーザー定義関数を作成することもできます。このようなタスクに取り組むには複数の方法があります。以下はほんの一例です。

Function CountComma(rng As Range)

Dim iCount As Integer     Dim rCell As Range     Dim sTemp As String

Application.Volatile     iCount = 0     For Each rCell In rng         sTemp = Application.WorksheetFunction. _           Substitute(rCell.Value, ",", "")

iCount = iCount + _           (Len(rCell.Value) - Len(sTemp))

Next     CountComma = iCount     Set rCell = Nothing     Set rng = Nothing End Function

ワークシートの関数を使用するには、セルに次のように入力します。

=CountComma(A1:A10)

これまでに説明したこれらのメソッドはすべて、実際にセルにあるコンマをカウントします。書式設定のためにセル内にあるように見えるコンマはカウントされません。たとえば、セルに数値が「1,234」と表示されている場合、セルのフォーマット方法により、コンマが存在する可能性が高くなります。それは実際にはセル自体にはありません。

このようなコンマはカウントされません。

もちろん、コンマの数を知るだけでワークシートの値が必要ない場合は、数式とマクロの使用をすべて一緒にバイパスできます。次の一般的な手順に従ってください:

。カンマを数えるセルの範囲を選択します。

。 Ctrl + Hを押して、[検索と置換]ダイアログボックスの[置換]タブを表示します。

。 [検索する文字列]ボックスにカンマを入力します。

。 [置換]ボックスにカンマを入力します。

。 [すべて置換]をクリックします。

Excelが置換を実行し、置換が行われた回数を示すダイアログボックスを表示します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3460)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。