#FileMakerでフィールド内の行(繰り返し含む)に対して、任意の文字列に完全一致する行をカウント
フィールド内で任意の文字列に一致する個数はPatternCount関数でカウントできますが、PatternCount関数では、部分一致をカウントするので、
例えば、"123/12345"に対して、"123"でPatternCountした場合は、2となります。
今回は、完全一致するモノのみ数えたい場合の方法になります。
通常のフィールドに改行区切りでデータが格納されている場合と、繰り返しフィールドにデータが格納されている場合、両方を紹介致します。
##テーブルとレイアウト
まず、テーブルとレイアウトを用意します。
テーブル名とレイアウト名は、「test003」
##フィールド
次にフィールドを用意します。
フィールド名は、「data」「input」「result」「data2」「input2」「result2」
「data」「input」「data2」「input2」は,テキストフィールド
「result」「result2」は計算フィールド、計算結果は数字
##繰り返しフィールドの設定
繰り返しフィールドの設定方法は、
オプションを選択し、データの格納タブ内にある繰り返し欄に任意の数を入力し設定します。
今回は、「10」と入力し、「OK」ボタンを押下してください。
##繰り返しフィールドの表示
レイアウト側でも、「data2」を繰り返しフィールドとして表示する設定を行います。
繰り返しフィールドの表示方法は、
インスペクタのデータタブにある、繰り返しを表示と言う項目の上限値に「10」と入力します。
行の区切り線があると見やすいと思いますので、ここで設定しましょう。
###枠線の設定
外観タブにある、枠線で設定できます。
画像を参考に各フィールドを配置してください。
レコードを1つ作成し、「data」フィールドと「data2」フィールドに値を入力しておきましょう。
##計算フィールドの設定
今回メインとなる、完全一致する文字列のカウントを、「result」および「result2」へ設定します。
まず、「result」には、「ValueCount(FilterValues( data ; input))」と計算式を設定してください。
計算結果は数字にしましょう。
次に、「result2」には、「ValueCount(FilterValues( List(data2) ; input2))」と計算式を設定してください。
計算結果は数字にしましょう。
以上で設定は終了です。
実際に、「input」フィールド及び、「input2」フィールドへ文字を入力してみましょう。
「result」又は、「result2」へ計算結果が表示されていると思います。
##最後に
利用した関数を紹介します.
・ValueCount関数
https://fmhelp.filemaker.com/help/16/fmp/ja/#page/FMP_Help%2Fvaluecount.html%23
・FilterValues関数
https://fmhelp.filemaker.com/help/16/fmp/ja/#page/FMP_Help%2Ffiltervalues.html%23
・List関数
https://fmhelp.filemaker.com/help/16/fmp/ja/#page/FMP_Help%2Flist.html%23
実際に各関数がどういった動きをしているかは、公式サイトの説明を参照頂いた方が間違い無いと思いますが、簡単に解説致しますと、
まず、「result2」では、List関数を用いて、フィールド内のデータを取得します。ここで連結とありますが、改行区切りのデータになります。
その後、FilterValues関数を用いて、「input」または、「input2」を対象としたフィルターを掛けます。
最後に、ValueCount関数を用いて、フィルター後の値を数えます。
以上です。