4/05/2025

Access。クエリ。フィールド内のカンマで区切られた文字列を数えるには【count】

Access。クエリ。フィールド内のカンマで区切られた文字列を数えるには

<Access>

会議参加予定フィールド内に「,(カンマ)」で区切られた文字列。


この文字列を数えるには、どのようにしたらいいのでしょうか。


1日目は「町田,成瀬,津田」と入力されていますので、会議参加者数は、3名です。


この3を求めたいわけです。


Excelにエクスポートして、求めてもいいのですが、いちいちExcelにエクスポートするのも、面倒なので、Accessで求めたいわけです。


ExcelもAccessも一発で求めることはできませんが、基本的な考え方は同じです。


フィールド内の文字数から「,(カンマ)」を除いた文字数を引けば、「,(カンマ)」の数が求められます。


求めた数は、区切り数なので、「+1」すれば、「,(カンマ)」で区切られた文字列数を求めることができるというわけです。


Excelならば、

=LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1

のような、数式をつくるわけです。


Accessでは、クエリで演算フィールドをつかって対応することになりますが、Excelと違うのは、SUBSTITUTE関数が、Accessにはありません。


そこで、Accessでは、Replace関数をつかって、「,(カンマ)」を空白に置換して「,(カンマ)」を除いた文字数を求めます。


なお、文字数を数えるのは、Accessでは、Excelと同じLen関数が用意されています。


それでは、クエリで演算フィールドつくっていきます。


作成タブのクエリデザインをつかいます。


また、テーブルのフィールドはすべて使っています


演算フィールドには、

参加人数: Len([会議参加予定])-Len(Replace([会議参加予定],",",""))+1

と設定します。


では、実行してみましょう。


参加人数を求めることができました。


Excelとの違いは、Replace関数をつかって、置換したことです。