みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
超初心者です。FM13を使っています。よろしくお願いします。
テキストフィールドの中に「○本セット」と「○個セット」いう二つのパターンで値が入っているデータがあるのですが、
この○の中の数字が2や10といった、数字だけを抽出して他のフィールドで表示する計算式はありますか?
※一つのレコードに○本セットと○個セットは同時に入っていません。
2本セット
10本セット
5個セット
24個セット
このような感じです。
よろしくお願いします。
単位の部分に数字が入らない条件ならFilter関数でいいのでは。
詳しくはヘルプで。
Offline
GetAsNumber はどうでしょう?以下ヘルプを引用
目的
フィールドタイプ番号としてテキストに含まれる数字のみを返します。
構文
GetAsNumber ( テキスト )
引数
テキスト - 任意のテキスト式、または数字を含むテキストフィールド
GetAsNumber ( “FY98” ) は、「98」を返します。
GetAsNumber ( “$1,254.50” ) は、「1254.5」を返します。
GetAsNumber ( “2 + 2” ) は、「22」を返します。
GetAsNumber ( シリアル番号 ) は、「シリアル番号」の値が「TKV35FRG6HH84」の場合、「35684」を返します。
GetAsNumber (誕生日) は、誕生日フィールドが 2014/10/10 の場合、「735516」を返します
Offline
旅人さん、nice-guyさん、言葉足らずで申し訳ないです。
「個セット」か「本セット」の2つのパターンのときだけ前にある数字を抽出したいです。
<例>
1本→抽出しない
5個→抽出しない
10本セット→10
6個セット→6
「本セット」と「個セット」をSubstitute関数で消せばいいのでは。
Offline
Substitute(そのテキストフィールド ; ["本セット" ; "" ] ; ["個セット" ; "" ] )
です。
Offline
> 「個セット」か「本セット」の2つのパターンのときだけ前にある数字を抽出したいです。
2パターン以外は抽出しない式。
Let(
[
#txt=テキストフィールド;
#txt=Substitute(#txt; ["本セット";"個セット"]); //←Substitute(#txt; ["本";"個セット"]);
#pos=Position(#txt;"個セット";1;1)
];
Replace(#txt;#pos;Length(#txt);"")
)
【修正記録】16.07.31 11:20
式にタイポがあり、訂正しました。
Last edited by Hiro (2016-07-31 11:21:59)
Offline
"セット"の文字が含まれる場合に数字だけを取りたいのであれば、こんな感じでしょうか。
let(
~txt = テキストフィールド;
if( PatternCount(~txt;"セット");GetAsNumber ( ~txt );~txt)
)
Offline
初心者です。ご教示よろしくお願いいたします。
フィールドAに「1-2」 といった数字と記号が混じっているとき、フィールドBには「1」をフィールドCには「2」が入るような計算式はどうすればいいかお教えいただけないでしょうか?
フィールドAに「-」が1つだけあるときに、その左辺をフィールドBに、右辺をフィールドCに
分解格納する式、(「-」の数が1つ以外は空欄を返す)
・フィールドBは、
Case(
PatternCount(フィールドA;"-")=1; GetValue(Substitute(フィールドA; ["-";¶]); 1)
)
・フィールドCは、
Case(
PatternCount(フィールドA;"-")=1; GetValue(Substitute(フィールドA; ["-";¶]); 2)
)
Offline
記号は「-」のみですか?
他の記号もあるのですか?
Offline
Pages: 1
[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 566.21 KiB (Peak: 581.82 KiB) ]