2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FileMakerでフィールド内の行に対し、任意の文字列に完全一致する行をカウント

Last updated at Posted at 2018-04-05

#FileMakerでフィールド内の行(繰り返し含む)に対して、任意の文字列に完全一致する行をカウント

フィールド内で任意の文字列に一致する個数はPatternCount関数でカウントできますが、PatternCount関数では、部分一致をカウントするので、
例えば、"123/12345"に対して、"123"でPatternCountした場合は、2となります。
今回は、完全一致するモノのみ数えたい場合の方法になります。
通常のフィールドに改行区切りでデータが格納されている場合と、繰り返しフィールドにデータが格納されている場合、両方を紹介致します。

##テーブルとレイアウト
まず、テーブルとレイアウトを用意します。
テーブル名とレイアウト名は、「test003」
##フィールド
次にフィールドを用意します。
q003-01.png
フィールド名は、「data」「input」「result」「data2」「input2」「result2」
「data」「input」「data2」「input2」は,テキストフィールド
「result」「result2」は計算フィールド、計算結果は数字

##繰り返しフィールドの設定
繰り返しフィールドの設定方法は、
オプションを選択し、データの格納タブ内にある繰り返し欄に任意の数を入力し設定します。
q003-02.png
今回は、「10」と入力し、「OK」ボタンを押下してください。

##繰り返しフィールドの表示
レイアウト側でも、「data2」を繰り返しフィールドとして表示する設定を行います。
繰り返しフィールドの表示方法は、
インスペクタのデータタブにある、繰り返しを表示と言う項目の上限値に「10」と入力します。
q003-03.png

行の区切り線があると見やすいと思いますので、ここで設定しましょう。
###枠線の設定
外観タブにある、枠線で設定できます。
q003-07.png

画像を参考に各フィールドを配置してください。
レコードを1つ作成し、「data」フィールドと「data2」フィールドに値を入力しておきましょう。

q003-04.png

##計算フィールドの設定
今回メインとなる、完全一致する文字列のカウントを、「result」および「result2」へ設定します。
まず、「result」には、「ValueCount(FilterValues( data ; input))」と計算式を設定してください。
計算結果は数字にしましょう。
q003-05.png

次に、「result2」には、「ValueCount(FilterValues( List(data2) ; input2))」と計算式を設定してください。
計算結果は数字にしましょう。
q003-06.png

以上で設定は終了です。

実際に、「input」フィールド及び、「input2」フィールドへ文字を入力してみましょう。
「result」又は、「result2」へ計算結果が表示されていると思います。

q003-08.png

##最後に
利用した関数を紹介します.

・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関数を用いて、フィルター後の値を数えます。

以上です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?