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

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

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

You are not logged in.

Announcement

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


#1 2013-10-08 10:42:01

sora
Guest

3個のフィールドに分ける

FM12の初心者です。

「名称」フィールドの登録内容をA,B,Cの3個のフィールドに分ける方法をご指導願います。

「名称」フィールドの登録例です 「1234_ABC改10」
_と改をキーにして分ければ良いと思うのですが。

1234はAフィールドに
ABCはBフィールドに
10はCフィールドに

数字や英語は全角や半角が混じっている可能性があります。
改と改以降はない場合もあります。

#2 2013-10-08 10:56:31

Hiro
Member

Re: 3個のフィールドに分ける

Let(
 LST=Substitute(名称;["_";¶];["改";¶])
;
 GetValue(LST;番号) // ← 番号はフィールドA~C順に1~3を指定。
)

Offline

#3 2013-10-08 17:02:41

sora
Guest

Re: 3個のフィールドに分ける

Hiro wrote:
Let(
 LST=Substitute(名称;["_";¶];["改";¶])
;
 GetValue(LST;番号) // ← 番号はフィールドA~C順に1~3を指定。
)

Aフィールドの計算式に上記式を設定し、番号には「1」を入力しました。
ところが
式のGetValueが黒くなり「この計算式では一覧を使用できません」
とエラー表示がでます。

#4 2013-10-08 18:07:47

旅人
Member

Re: 3個のフィールドに分ける

そんなはず無いですけど。Hiroさんの式をコピペしてみたら?
GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )でも同じですけど。

Offline

#5 2013-10-09 09:36:40

sora
Guest

Re: 3個のフィールドに分ける

旅人 wrote:

そんなはず無いですけど。Hiroさんの式をコピペしてみたら?
GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )でも同じですけど。

有難うございます。
コピー&ペーストするとできました。
ところが名称に登録しているレコードで後ろに「.tif」があるが見つかりました。
Cフィールドにはそれが不要なので「10」のみでよいのですが。
   「名称」フィールドの登録例です 「1234_ABC改10.tif」

#6 2013-10-09 09:42:20

旅人
Member

Re: 3個のフィールドに分ける

余計なのが拡張子だけで他に「.」が無いのなら「.」から後ろを
計算で全部削除するといいのでは。

Offline

#7 2013-10-09 09:58:24

sora
Guest

Re: 3個のフィールドに分ける

旅人 wrote:

余計なのが拡張子だけで他に「.」が無いのなら「.」から後ろを
計算で全部削除するといいのでは。

.pdfも見つかりました。
「.」から後ろを削除するのか良いと思われます。
申し訳ありませんが、
  GetValue ( Substitute(名前;["_";¶];["改";¶]) ; 1 )
に対し、どの様に変更すれば宜しいのでしょうか。

#8 2013-10-09 10:01:26

チポ
Member

Re: 3個のフィールドに分ける

「.」
これもSubstituteで「¶」にしてもいいですね。

いずれにしても、
_

.
が他に出てこないのが条件です。

Offline

#9 2013-10-09 10:48:31

旅人
Member

Re: 3個のフィールドに分ける

チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )

Offline

#10 2013-10-10 10:44:16

sora
Guest

Re: 3個のフィールドに分ける

旅人 wrote:

チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )

有難うございます。
解決しました。

#11 2013-10-10 11:10:38

sora
Guest

Re: 3個のフィールドに分ける

FM12 の初心者です。

テーブルが「食材マスター」と「製品マスター」の二つがあります。
二つは「食材コード」でリレーションしています。
「製品マスター」入力時に「食材コード」を入力すると材料名A~Hまでを「食材マスター」からルックアップします。

相談したいのは「食材マスター」に「食材コード」が無い場合は「製品マスター」には予め決めた材料名を入力する方法です。
下記例では、予め決めた材料名は タイ・スズキ・サンマ にしています。
宜しくお願いします。

「食材マスター」
食材コード      材料名A  材料名B  材料名C
111         にんじん   かぼちゃ   りんご
222         なす     にんじん   肉


「製品マスター」
食材コード      材料名A  材料名B  材料名C
111         にんじん   かぼちゃ   りんご
333         タイ      スズキ    サンマ
444         タイ      スズキ    サンマ     
222         なす     にんじん   肉
555         タイ      スズキ    サンマ

#12 2013-10-10 11:14:09

sora
Guest

Re: 3個のフィールドに分ける

すみません。
新規問い合わせ案件を間違って登録しました。
削除いただけると助かります。

#13 2013-10-10 16:00:32

sora
Guest

Re: 3個のフィールドに分ける

旅人 wrote:

チポさんので
Cフィールド=GetValue ( Substitute(名前;["_";¶];["改";¶];[".";¶]) ;3 )


改とそれ以降の数字が無いのが出てきました。

例えば
「1234_ABC.tif」
です。
この場合のCフィールドは「空白」です。

何度もすみません。

#14 2013-10-10 16:06:30

tatitute
Guest

Re: 3個のフィールドに分ける

そのうちピリオドが複数のが出てきたりするのでは。

とりあえず先頭のピリオドまでを使うように変更
名前の代わりにGetValue(Substitute(名前;".";¶);1)を入れる。

#15 2013-10-10 16:12:55

チポ
Member

Re: 3個のフィールドに分ける

> 「1234_ABC.tif」
> です。
> この場合のCフィールドは「空白」です
空白ではなく
tif
が入力されるはずですが。


何が入力されればいいのですか?

Offline

#16 2013-10-10 16:24:00

sora
Guest

Re: 3個のフィールドに分ける

チポ wrote:

> 「1234_ABC.tif」
> です。
> この場合のCフィールドは「空白」です
空白ではなく
tif
が入力されるはずですが。


何が入力されればいいのですか?


現状はtifが入り困っています。
改が無い場合は
Cフィールドには「空白」にしたいのです。

#17 2013-10-10 16:26:45

チポ
Member

Re: 3個のフィールドに分ける

ああ、読み違えたか、

tifが入力されるが、空白にしたい。
ですよね。

ならば、
tatituteさんのがいいですね。


もっとイレギュラーが出てくるのか?

Offline

#18 2013-10-10 17:08:22

sora
Guest

Re: 3個のフィールドに分ける

チポ wrote:

ああ、読み違えたか、

tifが入力されるが、空白にしたい。
ですよね。

ならば、
tatituteさんのがいいですね。


もっとイレギュラーが出てくるのか?


現状は数人で入力します。
イレギュラーはもう無いと思うのですが、ルール化が必要ですね。

この様な式になるのでしょうか。
Cフィールド=GetValue ( Substitute(GetValue(Substitute(名前;".";¶);1);["_";¶];["改";¶];[".";¶]) ;3 )

「名称」フィールド
「1234_ABC改10.tif」の場合は
Cフィールド「10」で
「1234_ABC.tif」の場合は
Cフィールド「空白」にしたいのですが。

#19 2013-10-10 17:13:55

tatitute
Guest

Re: 3個のフィールドに分ける

それでいいけど、ピリオドは存在しなくなるので
;[".";¶]
が不要。

#20 2013-10-10 17:42:20

sore
Guest

Re: 3個のフィールドに分ける

tatitute wrote:

それでいいけど、ピリオドは存在しなくなるので
;[".";¶]
が不要。


「1234_ABC改10.tif」の場合は
Cフィールド「10」ではなく「空白」になってしまいます。
改がある場合は「10」が必要です。

#21 2013-10-10 19:51:56

wader
Member

Re: 3個のフィールドに分ける

書いてるとおりで10になりますよ。
計算式かデータを間違えてるのでは。

Offline

#22 2013-10-11 09:59:35

soa
Guest

Re: 3個のフィールドに分ける

すみません。
私の勘違いでした。
評価用にフィールドの複製を沢山作成し、見間違いしました。
ところで「データベースの管理」の「タイプ」でテキスト又は計算のどちらを選択しても表示がでます。
どちらでも宜しいのでしょうか。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 558.49 KiB (Peak: 579.03 KiB) ]