初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2019-08-16 12:57:12

初心者0070
Guest

重複を調べる(空白を除外する)方法

よろしくお願いいたします。

ファイルメーカーの18を使っています。

さっそく
人物を入力するフィールドが4つあります。

フィールド1:太郎
フィールド2:太郎
フィールド3:一郎
フィールド4:三郎

となった時 重複を教えてくれるようにカスタムダイアログを出したいです。


作ったやつが
Case (
フィールド1 = フィールド2 ;
"重複しています。" ;
フィールド1 = フィールド3 ;
"重複しています。" ;
フィールド1 = フィールド4 ;
"重複しています。" ;
フィールド2 = フィールド3 ;
"重複しています。" ;
フィールド2 = フィールド4 ;
"重複しています。" ;
フィールド3 = フィールド4 ;
"重複しています。" ;
"重複なし"
)

と書きました。4人全てにデータが入っていると成功するのですが、

フィールド1:太郎
フィールド2:一郎
フィールド3:
フィールド4:

と空白が入っていても重複と捉えられてしまいます。

うまく空白を回避して重複していることを通知したいです。

加えて、スマートじゃないので、もう少し関数がスマートになら無いかと思っています。

どうぞよろしくお願いいたします。

#2 2019-08-16 14:11:23

チポ
Member

Re: 重複を調べる(空白を除外する)方法

方法はいろいろ考えられますが、

計算だけで・・
Let ( [ $f1 = Case ( IsEmpty ( フィールド1 ) ; "1" ; フィールド1 ) ;
          $f2 = Case ( IsEmpty ( フィールド2 ) ; "2" ; フィールド2 ) ;
          $f3 = Case ( IsEmpty ( フィールド3 ) ; "3" ; フィールド3 ) ;
          $f4 = Case ( IsEmpty ( フィールド4 ) ; "4" ; フィールド4 ) ] ;
          Case ( ( $f1 = $f2 ) + ( $f1 = $f3 ) + ( $f1 = $f4 ) + ( $f2 = $f3 ) + ( $f2 = $f4 ) + ( $f3 = $f4 ) ; "重複" ; "OK" ) )

1,2,3,4はフィールド値に使われない固有値なら何でも可です。

あまりスマートとは言えないかな、、


入力してから重複を見るより、重複の入力ができない様にしたほうがいいのでは。

Offline

#3 2019-08-16 14:21:04

xyz
Member

Re: 重複を調べる(空白を除外する)方法

チポ様
ありがとうございます。Letをつかえばいいとは思ったのですが、いまいち使い方がわからず躊躇していました。

恥ずかしながら重複を許可しないようするにはどうしたら良いのでしょうか?
現在、人物名を値一覧に書いており、ドロップダウンリストで選択するようにしております。

ご教示いただければ幸いです。

Offline

#4 2019-08-16 14:34:25

qb_dp
Member

Re: 重複を調べる(空白を除外する)方法

こんな感じとか。

Let([
¢LIST=List ( f1;f2;f3;f4 )
;¢UniqueValues=UniqueValues (¢LIST)
];
ValueCount ( ¢LIST ) ≠ ValueCount ( ¢UniqueValues )
)

※1レコードに人物フィールドが4っつと言うのがちょっと気になりますが.....

Offline

#5 2019-08-16 14:37:54

xyz
Member

Re: 重複を調べる(空白を除外する)方法

qb_dp様

ありがとうございます。
1レコードに人物フィールドが4つというのは、レコードごとに業務が違っていて各業務ごとの担当職員の仕事量を出したくてレコードを分けています。
スマートにやる方法がわからずレコードばかり増えています。ちなみに実際は6フィールドあります。。。

お恥ずかしい限りです。

Offline

#6 2019-08-16 14:39:28

xyz
Member

Re: 重複を調べる(空白を除外する)方法

途中からアカウント名がxyzになってしまっていますが、ログインしないで投稿してしまったためです。
投稿者と同一人物です。

Offline

#7 2019-08-16 14:50:34

qb_dp
Member

Re: 重複を調べる(空白を除外する)方法

「各業務ごとの担当職員の仕事量を出す」
ざっと考えた場合、
フィールドは、以下のような感じが良いような.....

業務種別|担当者|工数

Offline

#8 2019-08-16 14:59:19

xyz
Member

Re: 重複を調べる(空白を除外する)方法

qb_dp様
たしかにですね。。。もう少しシステムを考えてみます。
なかなかスマートに作ることができず、苦労しています。

上記の関数はスッキリして見やすいですね。参考にさせていただきます。

チポ様qb_dp様
早い回答誠にありがとうございます。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.011 seconds, 9 queries executed - Memory usage: 516.12 KiB (Peak: 520.66 KiB) ]