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

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

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

You are not logged in.

Announcement

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


#1 2015-12-18 16:01:43

kenko0114
Member

(詳しい方ご教示ください)文字列の抽出方法について

環境はWindows7 Professional 64ビット FileMakerPro11 Advancedです。

質問内容ですが、IDにて紐付けられている他のテーブルにある文字列を、抽出したいと考えておりますが、全くわかりません。
分かりやすく解説しますと、当方不動産のデーターベースを作成しておりますが、テーブルAに建物データー、テーブルBに部屋情報データ、を配置しており、テーブルAに物件IDを設けてテーブルBにも部屋IDを設けて紐づけております。
そこで、間取りの大きさを、以下①と②の、2種類に仕分けし、最小値 ”1R(オフィス)” 、最大値 ”2R(1LDK以上)” といった文字列を、テーブルAに、それぞれのフィールド(最小値および最大値)を設け、反映させたいと考えております。

①.1R(オフィス)
1R
1R+S
1K
1DK

②.2R(1LDK以上)
1LDK
1SLDK
2K
2DK
2LDK
2SLDK
3K
3DK
3LDK
3SLDK
4K
4DK
4LDK
4SLDK

例えば、
テーブルB
ID00001(レコード1)1R
ID00001(レコード2)1LDK
ID00001(レコード3)2LDK
ID00001(レコード4)1R
ID00001(レコード5)1R
ID00001(レコード6)1R
の場合、最大値は2R(1LDK以上)、最小値は1R(オフィス)と、テーブルAのフィールドへ反映させたいと考えております。
(例)
テーブルAの最小値フィールドに「1R(オフィス)」
テーブルAの最大値フィールドに「2R(1LDK以上)」


テーブルB
ID00002(レコード1)1LDK
ID00002(レコード2)1LDK
ID00002(レコード3)2LDK
ID00002(レコード4)1LDK
ID00002(レコード5)1LDK
ID00002(レコード6)1LDK
の場合、最大値は2R(1LDK以上)、最小値は2R(1LDK以上)と、テーブルAのフィールドへ反映させたいと考えております。
(例)
テーブルAの最小値フィールドに「2R(1LDK以上)」
テーブルAの最大値フィールドに「2R(1LDK以上)」


長くなりましたが、どうか、お詳しい方ご教示ください。よろしくお願い致します。

Offline

#2 2015-12-18 17:18:58

チポ
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

別テーブルを作り、

仕分けフィールドに
1R(オフィス)
を入力

間取りリストフィールドに
1R
1R+S
1K
1DK
と各間取りを改行で入力。

もう1レコードを作り同様に仕分け2の分を作ります。

このテーブルは2レコードのみです。


テーブルAで
  List ( テーブルB::間取り )
という計算フィールドを作ります。

このフィールドと、上記の間取りリストフィールドとでリレーション


最小値フィールドの計算式
  Case ( Count ( 別テーブル::仕分け ) = 2 ; GetNthRecord ( 別テーブル::仕分け ; 1 ) ; 別テーブル::仕分け )
             
最大値フィールドも同様に考えればいいです。


仕分けが三つ以上になると面倒になりますね ;;

Offline

#3 2015-12-19 10:10:08

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

チポ様
早速のご回答を誠に有難うございました。
ご教示いただきました手順にて試しましたところ、当方の希望通り、反映されましたが(最大値・最小値)、テーブルBの値を変更すると最小値フィールドおよび最小値フィールドの値が変更されません。
大変恐縮ですが、今一つアドバイスをいただけますと、幸いです。
どうか、よろしくお願い申し上げます。。

Offline

#4 2015-12-19 10:16:30

チポ
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

最大値・最小値
は計算フィールドとしていますか。

としても変わらないかな?
今検証できない・・

Offline

#5 2015-12-19 10:31:27

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

チポ様、早速のご連絡を有難うございます!
最大値・最小値は計算フィールドとしております。
当方でも現在、試行錯誤、あらゆる方法で試しております。

Offline

#6 2015-12-19 11:03:00

旅人
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

その①②のリストが広さ?の順に並んでいるのなら、1R〜4SLDKまで
1〜18までの通し番号を付けたらいいのでは?

Offline

#7 2015-12-19 11:08:31

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

【追記】以下、計算式を再度入力すると、テーブルBの値の最小値フィールドおよび最小値フィールドの値が正しく変化します。

Case ( Count ( 別テーブル::仕分け ) = 2 ; GetNthRecord ( 別テーブル::仕分け ; 1 ) ; 別テーブル::仕分け )

Offline

#8 2015-12-19 11:13:22

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

旅人様
ご教示有難うございます。試してみます。ご回答いただき、有難うございます。

Offline

#9 2015-12-19 11:46:58

旅人
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

違った。
そのリストをマスタにして①のレコードには1R、②のレコードには2Rと入れるだけ?

通し番号というか、順位が不要なのは
テーブルAの最小値フィールドに「1R(1R+S)」
テーブルAの最大値フィールドに「2R(3SLDK)」
などの表示が必要無い場合という意味で。

Last edited by 旅人 (2015-12-19 11:55:28)

Offline

#10 2015-12-19 12:00:30

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

旅人様
旅人様のアドバイスをもとに、試行錯誤しておりますが、初心者の故、わかりまん。。
大変恐縮ですが、宜しければ具体的な手順(設定・記述方法)をご教示いただけますと、大変に幸いです。
どうか、よろしくお願いいたします。

Offline

#11 2015-12-19 12:01:51

チポ
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

テーブルAでテーブルBのListを照合に使っているから、
再計算されないかと推測します。


例えば、
テーブルAで
  IDを切り取り
  レコード確定
  IDにペースト
  レコード確定
などとすると再計算されます。

これをスクリプトにして、テーブルBのトリガで実行させてみたらいかがでしょう。


もっといい方法有るかもです。。

今、検証できないのでアヤフやでごめんなさい、
試してみてください -_-

Offline

#12 2015-12-19 12:23:56

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

チポ様、旅人様、ご返信を有難うございます。いただきましたアドバイスをもとに、やってみます!

Offline

#13 2015-12-19 13:02:30

旅人
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

勝手にオマケを付けてしまいました。
判りにくい場合は「オマケ」の付いたフィールドやリレーションシップ内の
テーブルを削除して下さい。

http://pupld.net/21/151219/fwjy9bwgws/index.cgi
間取り.fp7

Offline

#14 2015-12-19 13:08:25

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

旅人様
ご教示、誠に有難うございます。大変助かります!!
また、大変お手数をお掛け致しました。どうも有難うございました!

Offline

#15 2015-12-22 17:53:55

kenko0114
Member

Re: (詳しい方ご教示ください)文字列の抽出方法について

旅人様、チポ様
ご報告が遅れましたが、お二方のお蔭で、掲題の処理が出来ました。
教示いただき感謝しております。有難う御座いました。

Offline

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: 550.11 KiB (Peak: 571.02 KiB) ]