みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもおせわになっています。
あ~んまで入っているフィールド「頭文字フィールド」があります。
そのフィールドが「あ~お」までの場合「A」を表示
「か~こ」までの場合「K」を表示
さ行の場合「S」
た行の場合「T」
の様に表示させるフィールドの計算式はどの様に表記すれば宜しいでしょうか?
皆様のお知恵をお貸しください。
OS:[windows10]FileMaker Ver:[12]
濁点、半濁点
はどうします?
Offline
変換用のデータテーブルを作って
ルックアップするのが一つの案です。
Offline
作例を http://yahoo.jp/box/Wj-lpg に置きました。
濁点・半濁点のあるときと、無いとき両方入ってます。
もし使われるのなら、変換テーブルをチェックしてからにしてください
ノーチェックですので
Offline
Case(頭文字<"か";"A";頭文字<"さ";"K"
のように並べればいいのでは。
CODE関数で判定すればいいのでは、
(濁点、半濁点を含む)
あ行 12353~
か 12363
さ 12373
た 12383
な 12394
は 12399
ま 12414
や 12419
ら 12425
わ 12430~12435
文字コード順の一例を挙げると
・・かがきぎくぐけげこごさざ・・・
と並んでいます。
ですから単に
< "さ"
とすると、か行も、が行も含まれてしまいます。
が行を「K」としていいのか、というのが前回の私の質問です。
これを「G」とするにはとても面倒な計算式になりますよね。
シャチさんのサンプルは見ていませんが、
別テーブルで行ごとを1レコードとしてリレーションで得る方法が簡単でしょうかネ
Offline
ワ行のうはどっちになるの?
が行を「G」とするなら、半角カタカナに変換して、1文字目で濁点、半濁点を無視した判定にして、2文字目で濁点、半濁点を判定すると良いでしょうね。
Offline
わたしが変換テーブル案をだしたのは、
この方法は、いろんな変換に際して応用が効くという
いろんな面を考えてのことでした。
計算式で行くなら
Case(頭文字 ≤ "お";"A";
頭文字 ≥ "か" and 頭文字 ≤ "こ";"K" ;
頭文字 ≥ "が" and 頭文字 ≤ "ご";"G" ;
・・・・・・
ということになるかと思います。
Offline
変換テーブルによくにた案として
Middle ( "AAAAAKGKGKGKGKGSZSZ......." ; Code ( 一文字目 ) - Code ( "あ" ) + 1 ; 1 )
というのでも良いかも。
Offline
#10は
私の前レス#7の並びですからダメですね。
#11は
さらにコード順を書くと
ぁあぃいぅうぇえぉお・・・
となりますから、もうちょういですか・・
やっぱり変換テーブルですかね。
Offline
これだけ議論してるのに、質問者が逃げちゃってるじゃん。
双方いずれであっても対応できる汎用式。
Let([
$idx0=Quote("AAAAAAAAKKKKKKKKKKSSSS......."); //「が」→「K」のインデックス($flg=0)
$idx1=Quote("AAAAAAAAKGKGKGKGKGSZSZ......."); //「が」→「G」のインデックス($flg=1)
$pos=Code(頭文字フィールド) - Code("あ") + 1;
$fnc="Middle(Choose($flg;$idx0;$idx1); $pos; 1)"
];
Let([$flg=1]; Evaluate($fnc)) //←インデックス選択フラグに選択値(0 or 1)を入れて、定義関数を実行
)
Offline
結局テーブルでするのか、関数でするのかどっちじゃらほい。
皆さまご回答して頂きありがとうございます。
手元にFilemakerを扱える端末が無い為、後日改めて確認させてください。
すみません。
該当の文字は氏名(苗字)になりますので「ぁぃぅぇぉ」等の小文字?は対応しなくても大丈夫だと思います。
また「が」などは「K」に変換が良いと思っています。
出来ればテーブルは増やしたくないので関数が理想です。
Shinさん、Hiroさんが提示して頂いた
AAAAAKGKGKGKGKGSZSZ.....や
AAAAAAAAKKKKKKKKKKSSSS....の
法則性を教えて頂けないでしょうか?
それなら、
#5 ふゆうさんの計算でいいでしょう。
Offline
小文字、半濁点・濁点文字を区別しないなら、当初#5ふゆうさんの式で良いです。
Case(
頭文字フィールド<"あ"; "";
頭文字フィールド<"か"; "A";
頭文字フィールド<"さ"; "K";
頭文字フィールド<"た"; "S";
頭文字フィールド<"な"; "T";
頭文字フィールド<"は"; "N";
頭文字フィールド<"ま"; "H";
頭文字フィールド<"や"; "M";
頭文字フィールド<"ら"; "Y";
頭文字フィールド<"わ"; "R";
頭文字フィールド<"ん"; "W";
頭文字フィールド="ん"; "N"
)
【 補足訂正 】← 2016/11/24(木) 12:50 現在
今頃になって気付きましたが、「ん」の「N」は「な行」とダブってますね!!^^;;
「ん」はまず使わないので放置でも良いかしら?
それとも、「NN」などに変更とか?
Last edited by Hiro (2016-11-24 12:45:58)
Offline
該当の文字は氏名(苗字)になりますので「ぁぃぅぇぉ」等の小文字?は対応しなくても大丈夫だと思います。
また「が」などは「K」に変換が良いと思っています。
出来ればテーブルは増やしたくないので関数が理想です。
Shinさん、Hiroさんが提示して頂いた
AAAAAKGKGKGKGKGSZSZ.....や
AAAAAAAAKKKKKKKKKKSSSS....の
法則性を教えて頂けないでしょうか?
ユニコードのコード表を見られれば見当がつくでしょう。私の文字列は,小文字を忘れていましたので、Hiroさんの式が正しいです。
Offline
>手元にFilemakerを扱える端末が無い為
ってどんな環境やねんなw
わーい さん
質問者や閲覧者にとって有益な、または、それにつながる投稿をおねがいしますネ。
当掲示板管理人
株式会社ジョイメイト
富田博文
Offline
すみません、Filemakerは会社の特定の端末にしかインストールされておらず
特定の日にしか扱えないもので・・・
お陰様で、希望道理の表記をすることが出来ました
ありがとうございました^^
管理人さん、ごめんなさい。
でも、みんなも思ってない?
あるとらんさんも、どういった方法で希望通りの表記が出来たかを書くべきだと思います。
Pages: 1
[ Generated in 0.131 seconds, 7 queries executed - Memory usage: 563.47 KiB (Peak: 584.38 KiB) ]