dポイントプレゼントキャンペーン実施中!

たとえば、

昭和十八年三月十一日

の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、日付フィールドにしたり、

十八

の様に入力がされている、文字列フィールド(計算フィールド)がある場合、これから、計算で、数字フィールドに変換する

簡単な方法は無いでしょうか?
力ずくで、計算を行わせるしかないでしょうか?

A 回答 (5件)

再び訂正。

ANo.3の式
> 計算フィールド「漢数字変換」(数字) =
> (Left(A,1) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1)
を修正です。いろんなパターンがあって難しい・・・

計算フィールド「漢数字変換」(数字) =
(Left(A,(Length(漢数字 > 1))) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1)
    • good
    • 0
この回答へのお礼

皆様、ありがとうございました。

結局、力技で行いました。
完成したつもりのフィールド定義で、生まれた計算フィールドを、
日付、漢数字2 で書き出し、
オリジナルと、比較すると、平成元年 などが、間違っていました。
まったく、やっかいです。

目的は終了しましたが、もう少し、スマートな方法が得られないか、
質問を閉じるのは、もう少し後にしますl。

お礼日時:2007/03/22 14:41

>しかし、カスタム関数はDeveloper7かAdvanced8以降が必要になります。



ここだけ訂正。
カスタム関数は通常バージョンでも使えます。
ただし、URLにある関数は Let関数の使えるバージョン以降しか使えません。
    • good
    • 0

カスタム関数でしたら、下記URLにあります。


http://www.fmpro.jp/

しかし、カスタム関数はDeveloper7かAdvanced8以降が必要になります。
そこで、上記カスタム関数を参考に九十九までを数字に変換できるようにしてみました。
力ずくには変わりありませんが・・・
(MacOS10.3.9 + FM6v3で検証)

※フィールド「漢数字」を数字に変換

まず、一から九までを数字に変換する計算フィールドを作ります。
計算フィールド「A」(テキスト) =
Substitute(Substitute(Substitute(Substitute(Substitute(
Substitute(Substitute(Substitute(Substitute(
漢数字, "九", "9"), "八", "8"), "七", "7"), "六", "6")
, "五", "5"), "四", "4"), "三", "3"), "二", "2"), "一", "1")

計算フィールド「漢数字変換」(数字) =
(Left(A,1) + (Position(漢数字, "十", 1, 1) = 1))*10 + Right(A,1)
    • good
    • 0

年と月と日の漢数字だけ取り出して、別ファイルの漢字と数字の対照表からルックアップするとか・・


これも力業ですね?そんなプラグインとか無いのですかね?
    • good
    • 0

Substituteで一を1にしたものを次は二を2にして・・・でしょうか?


十までだとコピーで式は簡単にできそうですが、式が長すぎるかも。

この回答への補足

要は、「一」~「六十四」 まで、すべて並べ立てる という 力業ですね?

それしか無さそうですね。

補足日時:2007/03/21 06:19
    • good
    • 0

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

関連するカテゴリからQ&Aを探す