Access InStr関数の活用 1フィールドに、複数の値が入っていて値を集計した場合
1フィールドに複数の値が入っているテーブルの値の集計をしたい場合、選択クエリで Instr関数を使用して分けた後に集計選択クエリで集計をすることができます。
関数式はSwitch関数も組み合わせて以下のように記述します。
Switch(InStr([テーブル名]![フィールド名],値)>0,任意の値)
例えば、テーブルAのフィールド「値」に abcdeの5文字が様々な組み合わせで入っている表があるとします。
テーブルAにabcdeが何個ずつあるか知りたい時、値にaがあるならフィールドaに、値にbがあるならフィールドb に、値にcがあるならフィールドcに、値にdがあるならフィールドdに、値にeがあるならフィールドeに「1」を入れたクエリBを新たに作成し、クエリBから集計クエリCを作成します。
この時、InStr関数を以下のように記述したa,b,c,d,eのフィールドがある選択クエリを作成します。
a: Switch(InStr([テーブルA]![値],"a")>0,1)
b: Switch(InStr([テーブルA]![値],"b")>0,1)
c: Switch(InStr([テーブルA]![値],"c")>0,1)
d: Switch(InStr([テーブルA]![値],"d")>0,1)
e: Switch(InStr([テーブルA]![値],"e")>0,1)
クエリBを実行したら、上のようにデータシートビューで表せました。
テーブルAからabcdeの値の個数を振り分けた上のクエリBを使用し、集計クエリCを以下のように作成します。
上のようにデータシートビューで表すと、abcdeがテーブルAでそれぞれ何個書かれているか集計することができました。