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関数をつかって、置換したことです。