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

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

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

You are not logged in.

Announcement

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


#1 2015-12-22 17:37:17

Hori
Guest

ひらがなが文字としてカウントされていない?

こんにちは。
Windows7 FileMaker 12 です。よろしくお願いします。

人名のフィールドがありたくさんの名前が入力されているため、3名以上の場合は3名の名前の後に、英語では「et al.」を、日本語では「他」という表記にしようと思い、Author_Short フィールドを作成し、以下のようにしました。

Cat フィールドには「E」および「J」が入っています。
Author_NOSPACE フィールドには、Author フィールドから、ダブルスペースや姓名間のスペースを TrimAll で削除した人名が入っており、それぞれ英名では「,」、日本名では「、」で区切られています。
Author_Short フィールドを作成し、以下の計算式で上位3名を表示したいと思っています。

Case ( Cat = "E" ;
Case ( PatternCount ( Author_NOSPACE ; "," ) ≥ 3 ; (LeftWords ( Author_NOSPACE ; 6 ) & ", et al.") ; PatternCount ( Author_NOSPACE ; "," ) ≤ 2 ; Author_NOSPACE ; "" ) ;
Cat = "J" ;
Case (PatternCount ( Author_NOSPACE ; "、" ) ≥ 3 ; (LeftWords ( Author_NOSPACE ; 3 ) & " 他") ; PatternCount ( Author_NOSPACE ; "、" ) ≤ 2 ; Author_NOSPACE ; "" ) ;
"" )

英名の場合、今のところ問題ないようですが、日本名にひらがながあるばあい、これが表示されません。

たとえば、
「田中めぐみ、山田一郎、鈴木太郎、佐藤敬子、伊藤洋」となっているばあい、Author_Short フィールドには「田中めぐみ、山田一郎 他」と表示されます。
「山田一郎、鈴木太郎、田中めぐみ、佐藤敬子、伊藤洋」となっているばあい、Author_Short フィールドには「山田一郎、鈴木太郎、田中 他」と表示されます。
「山田一郎、鈴木太郎、佐藤敬子、田中めぐみ、伊藤洋」となっているばあい、Author_Short フィールドには「山田一郎、鈴木太郎、佐藤敬子 他」と「田中めぐみ」は上位3位までにないので問題なく表示されます。

解決法をご教示頂ければ幸いです。
どうぞよろしくおねがいします。

#2 2015-12-22 18:00:07

チポ
Member

Re: ひらがなが文字としてカウントされていない?

「単語」
は漢字仮名まじりのテキストの場合、
漢字と、仮名の境で他の単語として扱われます。


「、」の三つ目の前を取り出す
とすればいいのでは。


おせっかいを、、

Case (PatternCount ( Author_NOSPACE ; "、" ) ≥ 3 ; (LeftWords ( Author_NOSPACE ; 3 ) & " 他") ; PatternCount ( Author_NOSPACE ; "、" ) ≤ 2 ; Author_NOSPACE ; "" )

Case関数は条件の左から評価して行き、それが真になるとその結果を返し、
その後の評価はしません。

ですから、二番目の条件式は不要でしょう。

Offline

#3 2015-12-22 18:34:28

Hori
Guest

Re: ひらがなが文字としてカウントされていない?

こんにちは。

チポさま、早速の返信ありがとうございます。

「、」の三つ目の前を取り出す
とすればいいのでは。

三つ目の前を取り出すというのがぴんとこなかったのですが、position を使ってみました。

Case (
Cat = "E" ;
Case ( PatternCount ( Author_NOSPACE ; "," ) ≥ 3 ; (LeftWords ( Author_NOSPACE ; 6 ) & ", et al.") ; Author_NOSPACE ) ;
Cat = "J" ;
Case (PatternCount ( Author_NOSPACE ; "、" ) ≥ 3 ; (( Left ( Author_NOSPACE ; Position ( Author_NOSPACE ; "、" ; 1 ; 3 ) -1 ) ) & " 他") ; Author_NOSPACE ) ;
"" )

今のところ問題ないようです。
ありがとうございました。

また、

Case関数は条件の左から評価して行き、それが真になるとその結果を返し、
その後の評価はしません。

ですから、二番目の条件式は不要でしょう。

とのことでしたので、上記のように二番目の条件式は削除してみました。
こちらも、今のところ問題ないようです。

いろいろとありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 10 queries executed - Memory usage: 508.93 KiB (Peak: 513.47 KiB) ]