プロが教えるわが家の防犯対策術!

どなたかファイルメーカーに詳しい方教えて下さい。120万円や1254万2000円という漢字の入った数字を自動的に1200000や12542000円と自動的にできる式を教えてもらったのですが☆☆万円が☆☆しにしかならないのです。あとはOKでした。数式を見てもちんぷんかんぷんで、どなたか指摘してもらえないでしょうか。何か間違っているのでしょうか?それとも不可能でしょうか?よろしくお願いします。

NumToJText (
Case (
 WordCount ( 数字 ) + PatternCount ( 数字; "万円" )= 4 ; MiddleWords ( 数字 ; 1 ; 1 )
 &
If ( PatternCount ( 数字 ; "万" ) ≠ 1 ;
Choose (
 Length ( MiddleWords ( 数字 ; 3 ; 1 )) ;
 "00000000" & MiddleWords ( 数字 ; 3 ; 1 );
 "0000000" & MiddleWords ( 数字 ; 3 ; 1 );
 "000000" & MiddleWords ( 数字 ; 3 ; 1 );
 "00000" & MiddleWords ( 数字 ; 3 ; 1 );
 "0000" & MiddleWords ( 数字 ; 3 ; 1 );
MiddleWords ( 数字 ; 3 ; 1 ));
 Choose (
 Length ( MiddleWords ( 数字 ; 3 ; 1 )) ;
 "0000" & MiddleWords ( 数字 ; 3 ; 1 );
 "000" & MiddleWords ( 数字 ; 3 ; 1 );
 "00" & MiddleWords ( 数字 ; 3 ; 1 );
 "0" & MiddleWords ( 数字 ; 3 ; 1 );
 MiddleWords ( 数字 ; 3 ; 1 )
 ))
 &
 MiddleWords ( 数字 ; 5 ; 1 );
 WordCount ( 数字 ) = 2;
 MiddleWords ( 数字 ; 1 ; 1 ) & If ( PatternCount ( 数字 ; "億円" ) = 1 ; "00000000" );
 MiddleWords ( 数字 ; 1 ; 1 )
 &
 Choose (
 Length ( MiddleWords ( 数字 ; 3 ; 1 )) ;
 "0000" & MiddleWords ( 数字 ; 3 ; 1 );
 "000" & MiddleWords ( 数字 ; 3 ; 1 );
 "00" & MiddleWords ( 数字 ; 3 ; 1 );
 "0" & MiddleWords ( 数字 ; 3 ; 1 );
 MiddleWords ( 数字 ; 3 ; 1 )
 )
 &
 Choose (
 Length ( MiddleWords ( 数字 ; 5; 1 )) ;
 "0000" & MiddleWords ( 数字 ; 5 ; 1 );
 "000" & MiddleWords ( 数字 ; 5 ; 1 );
 "00" & MiddleWords ( 数字 ; 5 ; 1 );
 "0" & MiddleWords ( 数字 ; 5 ; 1 );
 MiddleWords ( 数字 ; 5 ; 1 )
 )
) ; 1 ; 0 )

A 回答 (7件)

優秀ではないです。

質問もしてますし、これも多分間違ってる。念のため・・・
Evaluate ( Substitute ( Substitute ( Substitute ( Substitute ( 数字 ; "円" ; "+1-1" ) ; "万" ; "*10 ^ 4+" ) ; "千" ; "*10 ^ 3+" ) ; "億" ; "*10 ^ 8+" ))

はどうですか?(式の結果は数字)検証不十分で全く自信なし。
「数字」というフィールドはフィールド定義のタイプは「テキスト」ですよね?
    • good
    • 0
この回答へのお礼

chieffishさん
スゴイ!!できました。天才!!。おっしゃる通り「数字」フィールドの定義はテキストです。私には全く式はわかりませんが、これでいちいち打ちなおさなくてもすみます。ありがとうございます。半分諦めていました。まさに救いの神~。また何かあれば教えてください。よろしくお願いします。

お礼日時:2007/09/11 17:18

ホントですかぁ?いろいろ検証してください。

責任取れませんので・・・

式は
1億2345万6789円でしたら億と万と円を式(テキスト)に変えて
1(×100000000+)23456(×10000+)6789(+1-1) として
Evaluateでテキスト式の内容を計算させているだけです。
千はないということでしたのでSubstitute ( 数字 ; "千" ; "*10 ^ 3+" )は要らないです。
    • good
    • 0
この回答へのお礼

う~ん今のところ大丈夫です。今までの5万件分のデータ変換しちゃいました。一応バックアップはとってあるので、もしだめでも昨日までと同じですので。責任だなんてとんでもない。素人なもので、式についてもう少し勉強したほうが良さそうですね。chieffishさんのように親切に教えてもらえて感激です。またよろしくお願いします。

お礼日時:2007/09/11 18:52

漢字は「万」だけですか?例えば、2千百万円とかもあるんですか?

この回答への補足

chieffishさん何度もありがとうございます。大変感謝しております。私はchieffishのように優秀でないので、こんな説明でよろしいでしょうか?
漢字は 億 億円 万 万円 円 を組み合わせて使ってあります。
例:1億円もあり1億2000万円もあり1億2000万3000円といった具合です。2千百万円の千百のようなものは使っていません。 こんなんでよろしいでしょうか。

補足日時:2007/09/11 14:40
    • good
    • 0

また訂正です。

m(_ _)m
Evaluate ( Substitute ( Substitute ( 数字 ; ["円" ; "" ] ; ["万" ; "*10000" ]) ; "億" ; "*100000000" & If ( (PatternCount ( 数字 ; "億" ) and PatternCount ( 数字 ; "万" )) ; "+" ; "" ) ) )
    • good
    • 0

フィールド名も違ってた・・・「漢数字」じゃなくて「数字」ね。


ついでに Substitute の入れ子も一つ減らしました。

Evaluate ( Substitute ( Substitute ( 数字 ; ["円" ; "" ] ; ["万" ; "*10000" ]) ; "億" ; "*100000000" & If ( Exact ( 数字 ; "万" ) ; "" ; "+" ) ) )
    • good
    • 0

計算式まちがえてたんですね。

これが正解。
Evaluate ( Substitute ( Substitute ( Substitute ( 漢数字 ; "円" ; "" ) ; "万" ; "*10000" ) ; "億" ; "*100000000" & If ( Exact ( 漢数字 ; "万" ) ; "" ; "+" ) ) )
    • good
    • 0

Evaluate ( Substitute ( Substitute ( Substitute ( 漢数字 ; "円" ; "" ) ; "万" ; "*10000" ) ; "億" ; "*100000000" & If ( Exact ( 漢数字 ; "万" ) ; "+" ; "" ) ) )


は試さなかったのですか?折角回答したのに・・・
FM7で検証済みです。
    • good
    • 0
この回答へのお礼

試して見たのですが、100万円は1000000になるのですが、100万1000円が10000100000になってしまうんです。フィールド設定か何かがちがうのでしょうか。検証済とのことで、何か補足があれば教えて頂けないでしょうか?よろしくお願い致します。

お礼日時:2007/09/11 08:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!