前のページ|次のページ

COUNT関数

指定した部分文字列が文字列内に含まれる個数を数えます。

カテゴリ: 文字
制限事項: この関数は、I18Nレベル1に準拠しています。英語以外の言語を使用する場合、可能な限りI18Nレベル1の関数の使用は避けてください。特定の環境下では、I18Nレベル1の関数は、2バイト文字セット(DBCS)または複数バイト文字セット(MBCS)エンコーディングを使用すると正常に動作しない場合があります。
ヒント: KCOUNT関数をDBCS処理に使えますが、機能に違いがあります。詳細については、DBCSの互換性を参照してください。

構文

必須引数

string

文字定数、変数または式を指定します。この中にある部分文字列を数えます。

ヒント 文字のリテラル文字列を引用符で囲みます。

substring

stringの中で数える対象となる部分文字列を文字定数、変数または式で指定します。

ヒント 文字のリテラル文字列を引用符で囲みます。

オプション引数

modifier

1つ以上の修飾子を文字定数、変数または式で指定します。次の修飾子(modifiers)には大文字と小文字のどちらでも使用できます。

i 数える時に大文字と小文字を区別しません。この修飾子を指定しないと、COUNTはsubstring内の文字に使用されているとおりに大文字と小文字を区別して文字を数えます。
t stringおよびsubstringから末尾の空白を取り除きます。
ヒント modifierが定数の場合、引用符で囲みます。一組の引用符で複数の定数を指定します。modifierを変数または式として表すこともできます。

詳細

基本

COUNT関数は左から右方向にstringを検索し、指定したsubstringが何回出現するかを検出して出現数を返します。string内にsubsringが見つからない場合、COUNTは値0を返します。
注意:
指定した部分文字列が文字列中に重複して2回出現する場合、結果は未定義になります。
たとえば、count('boobooboo', 'booboo')は1または2のいずれかを返す可能性があります。

DBCSの互換性

DBCS処理にはKCOUNT 関数 (SAS各国語サポート(NLS):リファレンスガイド)を使用できますが、機能に違いがあります。
COUNT関数のsubstringの値が2バイトよりも長い場合、COUNT関数はDBCS文字列を扱えます。次の例では、構文の違いを示します。
COUNT(string, substring <, modifier(s)>)
KCOUNT(string)

比較

COUNT関数は文字列中の部分文字列を数えるのに対し、COUNTC関数は文字列中の個別の文字を数えます。

SASステートメントとその結果を次に示します。
SASステートメント
結果
xyz='This is a thistle? Yes, this is a thistle.';
howmanythis=count(xyz, 'this');
put howmanythis;
3
xyz='This is a thistle? Yes, this is a thistle.';
howmanyis=count(xyz, 'is');
put howmanyis;
6
howmanythis_i=count('This is a thistle? Yes, this is a thistle.'
   , 'this', 'i');
put howmanythis_i;
4
variable1='This is a thistle? Yes, this is a thistle.';
variable2='is ';
variable3='i';
howmanyis_i=count(variable1, variable2, variable3);
put howmanyis_i;
4
expression1='This is a thistle? '||'Yes, this is a thistle.';
expression2=kscan('This is',2)||'     ';
expression3=compress('i     '||'     t');
howmanyis_it=count(expression1, expression2, expression3);
put howmanyis_it;
6

関連項目:

前のページ|次のページ|ページの先頭へ