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

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

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

You are not logged in.

Announcement

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


#1 2016-06-30 11:10:08

ジュイス
Guest

複雑な一致検索

1.商品名フィールドに1つのレコード毎に1つの商品名がテキストで登録されています。

オレンジジュース 330ml 缶
グレープフルーツジュース 500ml ペットボトル
ビートジュース 90g 瓶
ササニシキ 1kg
まるごとみかん 1個

上記のように商品名内に「内容量と容器」の記載が含まれています。

2.内容量フィールドには数字形式で内容量の値だけが登録されています。
例 ※上記1に準じています。
330
500
90
1
1

上記1と2の内容で「商品名内に記載されている内容量」と「内容量フィールドの数字」が一致するかどうかを調べたいのですが、
商品によっては内容量以外に「○○No.1」といった、商品名自体に数字が存在するものもあり、例のように内容量の単位や桁数も商品によって異なる為、
どのようにすれば期待した結果を得られるのか迷走しています。

どうか、お知恵をお貸し下さい。

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

#2 2016-06-30 12:11:08

tim
Guest

Re: 複雑な一致検索

区切りは空白
容器には数字は含まれない
などの条件が必要では。

#3 2016-06-30 12:35:14

Hiro
Member

Re: 複雑な一致検索

Let([
   #vol=GetValue(Substitute(商品名フィールド;[" ";¶]); 2)  //(区切り文字は半角スペース「" "」として)
];
   #vol*1=内容量フィールド*1
)

判別結果は、真なら 1、偽なら 0 が返ります。

Offline

#4 2016-06-30 16:25:48

tim
Guest

Re: 複雑な一致検索

例には出てませんが商品名自体にスペースが含まれる場合もありそうなんで、右から数えないとダメかなあと思いましたが。

#5 2016-06-30 17:37:58

ジュイス
Guest

Re: 複雑な一致検索

tim様 Hiro様、ご返事ありがとうございます。

tim様のおっしゃる通り、
商品名自体にスペースが含まれるものもございます。

情報の不足があり、大変、申し訳ございません。
追記を含め、改めてまとめさせていただきます。

商品名フィールド
・テキスト形式
・全半角漢字ひらがな英数字混在で入力されています。
・文字列の最大数は現時点で全角30文字までではありますが、将来的に超える可能性があります。
・入力パターンは、「商品名スペース内容量スペース容器」ではありますが、商品名自体に10年などの年代表記やNo.1等による数字が含まれるケースや、スペースが存在するケース、・(中点)で区切られているケースもあります。
・内容量の記載は必ずあります。単位は現時点で22種ある事が確認出来ていますが、桁数は最大4桁ですが、値は不定です。(ミリリットルだけでも10ml 50ml 300ml 355ml 5000ml等、バラバラです)

内容量フィールド
・数字形式
・最大桁数は4桁
・最小値1、最大値5000

期待する結果
商品名フィールドに含まれる「内容量の値」と「内容量フィールドの値」の一致を検索したい。


以上です。
よろしくお願い致します。

#6 2016-06-30 17:43:25

ジュイス
Guest

Re: 複雑な一致検索

容器に関する情報が洩れておりました。

容器は瓶、缶、袋、個、ペットボトル等、内容や文字数が不定であり、商品によっては入力自体がないものも存在します。

#7 2016-06-30 18:19:00

Hiro
Member

Re: 複雑な一致検索

「区切り文字が品名項目に含まれ、容器項目自体がないものもある」という条件だと、内容量項目を切り出すのは不可能では!

Offline

#8 2016-06-30 22:42:51

Shin
Member

Re: 複雑な一致検索

let (
[
text = 商品名 & " " ;
pos =
   Max (
    Position ( text ; "ml " ; 1 ; 1 ) ;
    Position ( text ; "l " ; 1 ; 1 ) ;
    Position ( text ; "kg " ; 1 ; 1 ) ;
    Position ( text ; "g " ; 1 ; 1 ) ;
    Position ( text ; "個 " ; 1 ; 1 )
   )
} ;
RightValues ( Left ( Substitute ( 商品名 ; " " ; ¶ ) ; pos ) ; 1 ) * 1 = 内容量 * 1
)
ではどうでしょう。区切り文字が品名項目に含まれ、容器項目自体がないものもある はクリアしています。
商品名や容器名の中に単位+" "が含まれていない、というのが前提で、単位に合わせて式を調整する必要があります。(他のテーブルにリストで持たせて、List() で持ってきてもいいでしょうが)

Last edited by Shin (2016-06-30 22:54:01)

Offline

#9 2016-07-01 09:24:54

ジュイス
Guest

Re: 複雑な一致検索

Shin様、ありがとうございます。
ご教授頂いた内容を活用させて頂き、おおよその該当商品を検索する事ができました。

この度の無理難題にご支援頂きました皆様に心より御礼申し上げます。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 517.85 KiB (Peak: 522.39 KiB) ]