商品を入力するフィールドが8つあり、
そのフィールド内で重複する商品がある場合、
ユニークな商品の値だけ表示させることが出来ます。
入力しているフィールド=商品1.商品2.商品3......商品8
です。
★1.登場する商品の回数をカウントする
1回しか出てこない商品のみを表示させるので、回数をカウントします。
・商品1の回数
これは、かならず表示させる値になるのでカウント不要。
・商品2の回数(計算フィールド)
If ( IsEmpty ( 商品2 ) ; "" ;
If ( 商品2 = 商品1 ; "2" ; "1" ) )
以下、同様に書いていきます。
複数回でてくる場合は、1以外ならなんでもいいので、すべて「2」としております。
・商品8の回数
If ( IsEmpty ( 商品8 ) ; "" ;
If ( 商品8 = 商品1 ; "2" ;
If ( 商品8 = 商品2 ; "2" ;
If ( 商品8 = 商品3 ; "2" ;
If ( 商品8 = 商品4 ; "2" ;
If ( 商品8 = 商品5 ; "2" ;
If ( 商品8 = 商品6 ; "2" ;
If ( 商品8 = 商品7 ; "2" ; "1" ) ) ) ) ) ) ) )
★2.登場回数が1回しかない商品を一つのフィールド(計算フィールド)にまとめる。
商品ALL(計算フィールド)=
商品1 &
If ( 商品2の回数 = "1" ; "¶" & 商品2 ; "" ) &
If ( 商品3の回数 = "1" ; "¶" & 商品3 ; "" ) &
If ( 商品4の回数 = "1" ; "¶" & 商品4 ; "" ) &
If ( 商品5の回数 = "1" ; "¶" & 商品5 ; "" ) &
If ( 商品6の回数 = "1" ; "¶" & 商品6 ; "" ) &
If ( 商品7の回数 = "1" ; "¶" & 商品7 ; "" ) &
If ( 商品8の回数 = "1" ; "¶" & 商品8 ; "" )
ポイントは改行して集約すること。
★3.上記2のフィールドから順番に商品を切り出す。
商品1...8だとややこしくなるので、商品A.B.C...Hというフィールド名にします。
・商品A=商品1
・商品B=GetValue ( 商品ALL ; 2 )
GetValue関数を使うことで、改行されたフィールドから値を取得できます。
以下、同様で、
・商品H=GetValue ( 商品ALL ; 8 )
以上です。