今だけ人気マンガ100円レンタル特集♪

すみません。教えて下さい。
Case関数を使って、数値管理をしたいのですが、
フィールドAが260以上ならA
フィールドAが220以下ならC
フィールドAが220より大きく260より少くなく、かつフィールドBが+ならB1、フィールドBが-ならB2というものを書きたいのですが、どのようにすればいいでしょうか?
みなさんお教え下さい。

このQ&Aに関連する最新のQ&A

A 回答 (12件中1~10件)

>>異常がある場合は高度>軽度>正常



これは既に承知しています。
お聞きしたいのは
高度>軽度>基準値より低い>正常
ですかということです。

この回答への補足

高度>軽度>基準値より低い>正常

ベストです。
すみません。

補足日時:2006/06/16 12:46
    • good
    • 0
この回答へのお礼

みなさんありがとうございました。
とりあえず、この質問は閉じます。
改めて再度作成させていただきます。

お礼日時:2006/06/19 15:30

優先順位がちょっと不明な部分があります。


例えばa、bとも正常でcが低い場合は「低い」が優先されるのですよね?

Case ( a ≧ 100 or b ≧ 100 or c ≧ 100;"高"; (a > 38 or b > 44) or (性別="男" and c > 84) or (性別 = "女" and c > 48);"軽";(a < 7 or b < 3) or (性別="男" and c < 9) or (性別="女" and c < 7);"低";"正常")

これじゃダメですか?

この回答への補足

優先順位は、例えば
Aが高度
Bが軽度
Cが正常となった場合

一番優先したいのは高度異常を優先したいのです。

また、
Aが正常
Bが軽度
Cが正常
となった場合は軽度異常を優先したいのです。

異常がある場合は高度>軽度>正常
という風にしたいのですが、難しいですか?

補足日時:2006/06/16 11:35
    • good
    • 0

一番最初の



Case( (フィールドA > 100 or フィールドB > 100 or フィールドC > 100) , "高度異常",
というところがそこに当てはまると思うのですがうまくいきませんか?

IDにメール登録しておりますので差し支えなければご連絡ください。mail goo ne jpです。

この回答への補足

ありがとうございます。
改めてメールはしますがとりあえずここでも報告をと思いまして。
ちょっと立てこんでまして、何も進んでません。
また連絡させて頂きます。

補足日時:2006/06/16 11:34
    • good
    • 0

ちょっとお仕事でセキはずしてしまいました。


大丈夫でしたか?

高度異常・軽度異常が重なった場合は高度異常を優先させるということはどういうことでしょう?

どれかのフィールドが100を超える場合は高度異常
どのフィールドも100を超えず、かつ正常値よりも数値が高い場合を軽度としているのですが、
ご面倒でなかったら補足お願い致します。

この回答への補足

お返事遅くなりまして申し訳ありません。
Aが軽度
Bが高度
Cが正常
としたら高度異常を表示させるようにするにはどうしたらいいでしょうか?
やっかいですか?

補足日時:2006/06/15 16:14
    • good
    • 0

ややこしいですが、case関数に関して落ち着いて考えるとわかるかと思います。



ちなみに、andは「かつ」、orは「または」です。

Case( 性別 = "男" , Case( (フィールドA > 100 or フィールドB > 100 or フィールドC > 100) , "高度異常", ((フィールドA < 100 and フィールドB < 100 and フィールドC < 100) and ( フィールドA > 38 or フィールドB > 44 or フィールドC > 84)),"軽度異常"), 性別 ="女",Case( (フィールドA > 100 or フィールドB > 100 or フィールドC > 100) , "高度異常", ((フィールドA < 100 and フィールドB < 100 and フィールドC < 100) and ( フィールドA > 38 or フィールドB > 44 or フィールドC > 48)),"軽度異常" ))

でとりあえずいきそうですが、もっとスマートになりそうです。もうちょっと時間を。

これには正常値以下が入っておりません。
正常値以下と表示させるのはフィールドCの値単独で判断して良いですか?
(AやBが100を超える場合や、軽度異常の場合は??)

この回答への補足

なるほど、なるほどできました。ただ欲を言えば、高度異常・軽度異常が重なった場合は高度異常を優先させるようなことはできますか?

補足日時:2006/06/15 14:33
    • good
    • 0

何となく見えてきました。


ということは、
仮にフィールド男・フィールド女としたときには
どちらかが空欄になると言うことでしょうか。
また、フィールド男・フィールド女とするよりは、
空欄をなくすために性別のフィールドを作成し、
性別が「M」「F」のときには~みたいな条件文でも
可ですかね?

この回答への補足

そうですね。条件文でも全く問題なしです。
いけそうですか?今もあれこれやってますがややこしくなる一方です。。。

補足日時:2006/06/15 13:11
    • good
    • 1

とりあえずは良かったですね。


次の壁は少々大変そうですので、整理しましょう。
まず、わからない点が。。。

フィールドC N10~84 G8~48というのがわかりません。
「N」「G」?
また、数値が2つある場合には
フィールドC N10~84 フィールドD G8~48にしたほうが良いのですが。
この場合、「N」「G」を含むことによってテキストフィールドか数字フィールドか
決めかねてしまいます。

99以下の異常値は軽度異常と表示させたいとのことですが、
たとえばフィールドAの正常値は8~38で、
100以上は高度異常
39<フィールドA<100は軽度異常
フィールドA<8も軽度異常ということでしょうか?

この回答への補足

すみません。補足不足でした
フィールドC N10~84 G8~48というのは、
N=男
G=女

で、この男と女は別フィールドで入力するようにして、
男の場合10~84
女の場合8~48が正常値で
男の場合84~99
女の場合48~99が軽度異常
男女とも100以上が高度異常ということになります。
逆に男の場合10以下
女の場合48以下は基準値より低いという表示もしたいですね。まあややこしくなってきました。今必死になってます。

補足日時:2006/06/15 12:53
    • good
    • 0

Case( フィールドA >= 260 , "260以上" ,フィールドA < 220 , "220以下", Case( フィールドB >0 , "B1" ,フィールドB < 0 , "B2"))



こんな感じですかね。

=+という表記はしないです。正であれば>0,負であれば<0となります。
また、区切りはセミコロン;ではなく、コンマ,になのですが、新しいバージョンはセミコロン?
あとは、「""」は文字扱いの記号なので"220以下";""←ここがちょっと変ですね。

あとはNO4でcockerelさんが回答してくれたように、
case関数の3番目の条件で、B>0のとき"B1"、それ以外の場合はデフォルト値"B2"となります。
ですが、この場合、0(null)の設定を明確にしないと、正しく表示されないかもしれません。

私もファイルメーカーは仕事でよく使っております。
いろんな計算式を作っていくとすぐになれますよ。
私も勉強になりますので、わからないところは納得のいくまでご質問ください。

この回答への補足

この件についてはうまく表示されるようになりました。感動しております。ありがとうございました。しかし、また壁にぶちあたっています。
       ↓正常値
フィールドA 8~38
フィールドB 4~44
フィールドC N10~84 G8~48

フィールドDにA・B・Cいずれかの数値が100以上なら高度異常
フィールドDにA・B・Cいずれかの数値が99以下の異常値な
ら軽度異常と表示させたいのです。

まず、高度異常を書き、その後、軽度異常以下を書き、その後それ以外を書きましたが、うまく表示されません。
上記例でCase文を記入して頂けますか?

補足日時:2006/06/15 11:13
    • good
    • 0

フィールドAが260以上なら"A"


フィールドAが220以下なら"C"
 上記以外でフィールドBが『正』なら"B+"
 上記以外でフィールドBが『負』なら"B-"
という意味に解釈しました。
"A"、"C"、"B+"、"B-"が、フィールドの名前と間違えやすいので、それぞれ『あ』『う』『い+』および『い-』として:
Case ( A ≧ 260 ; "あ" ; A ≦ 220 ; "う" ; B ≧ 0 ; "い+" ; "い-" )
でよいと思います。Case関数は頭から条件を当て嵌めるので、3番目の条件は自動的に『上記以外』になります。最後はすべての条件に当てはまらないデフォルト値です。

なお、『あ』『う』にA、Cのフィールドの値を用いる場合には""を外して対応するフィールドの名前を使用します。

-とか+は使ってはダメなのでしょうか?
文字として使用する場合には、""で囲みます。正/負の意味であれば、上記のように0より大きい(小さい)を使用して式で表します。
    • good
    • 0

説明下手で申し訳ありません。


本来は下記のような形にするとわかりやすいですかね。
Case( A >= 260 , "260以上" ,A <= 220 , "220以下", "260と220の間")
この式は、
case1→A >= 260 ならばtextは "260以上"
case2→A <= 220 ならばtextは "220以下"
case3→どちらにも当てはまらないときはデフォルト値"260と220の間"
としています。

case3のところに、新たに条件式↓
Case( B >0 , "B_0以上" ,B < 0 , "B_0以下")
↑正か負なのでデフォルト値の設定なし

にしています。

それ以外の場合(260>A>220)の時に、Bが+ならB_0以上・-ならB_0以下という場合の計算式はどうなりますか?
どうも、260>A>220がわかりません。

というのはcase3に当てはまります。

この回答への補足

たぶん私の書き方がまずかったのもしれません。
フィールドAが260以上なら”260以上”
フィールドBが220以下なら”220以下”
どちらも当てはまらず、かつ、フィールドBの値が+ならB1
どちらも当てはまらず、かつ、フィールドBの値が-ならB2
にしたいのです。
Case (フィールドA>= 260;"260以上";フィールドA< 220 ;"220以下";"";Case (フィールドB = +;"B1";フィールドB = -;"B2"))

ではダメでした。-とか+は使ってはダメなのでしょうか?それとも、そもそも計算式がダメでしょうか?

すみません。宜しくお願い致します。

補足日時:2006/06/14 16:56
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFileMakerのcase関数の作り方

合計20個の条件(条件1~条件20)を詰め込んだ「case関数」を書いてみたところ、正常に結果を返してきてくれたのは最初の2つ(条件1、条件2)だけで、条件3以降は全て条件2の結果を返してきます。なぜでしょうか??
数十個に及ぶcase関数は、そもそも無理なのでしょうか? 記号の入れ方のコツをご指南ください。

Aベストアンサー

Case文の書き方が間違ってますね。
2行目以降も、計算式の内容が必要です。

あと、計算式は見やすいように以下のような表記にした方がいいですよ。
Case(
希望到着年月="2014年8";"August, 2014";
希望到着年月="2014年9";"September, 2014";
希望到着年月="2014年10";"October, 2014";
あとは同様に~~
)

QFileMakerで、フィールドの値が空欄だった時に0を返す計算式

ファイルメーカーで、フィールドの値が空欄だった場合に
数値の0を返し、"空欄ではなかった時はそのままの値を返す"
計算式を教えてください。

IsEmptyを使ってみたのですがうまく行きませんでした。

FileMaker Pro7を使っています。
よろしくお願いします。

Aベストアンサー

結果=Case(IsEmpty(そのフィールド);0;そのフィールド)

QFilemakerのIF関数の関数式

FilemakerのIF関数の正しい関数式の作り方について教えてください。


Aが、「BまたはC」の条件を満たす場合は45を、満たさない場合は60を表示させるIF関数として、以下の関数式を作成・入力しましたが、うまく結果が出ません。どこが間違っているのか教えてください。困ってます(T-T)
ちなみにB、Cは全角文字という想定で“”をつけています。
If ( A=”B” or “C”; 45; 60 )

Aベストアンサー

ifで作るより、caseで作った方が楽だと思います。
case(
A=”B”;45;
A=”C”;45;
60)
で大丈夫です。

QファイルメーカーでCountifの様な方法ありますか?

はじめまして
初めての質問です。

環境はWinXP ファイルメーカーpro7です。
テーブル「社員名簿」のレコードからテーブル「在籍人数」にcountifの様な方法で、値を返せればと思っています。

まず、社員名簿というテーブルがあります。
フィールドが
「エリア」(値一覧で選択、[東日本、中部、西日本、本社])
「部署」(値一覧で選択、[管理本部、事業本部、CS、BS]など)
「雇用形態」(値一覧で選択、[正社員、試験社員、契約社員]など)
「職責」(値一覧で選択、[部長、マネージャー、一般]など)
「性別」(男・女)
などです。

在籍人数テーブルは表の様に表すのが希望です。
例えば
「東日本」の「CS」部で「正社員」のうちの「一般」社員で「男」を
社員名簿履歴からカウントするフィールドを作成
上記のような感じで部署や雇用形態が違うフィールドをいくつも作成して最終的には合計人数を出したいのです。

エクセル的な考えでcountifを使用するつもりだったのですが、使えない事がわかり・・・。

ファイルメーカー初心者なので、なかなかいい方法が思いつかず困っています。

ぜひ、アドバイスお待ちしております。

はじめまして
初めての質問です。

環境はWinXP ファイルメーカーpro7です。
テーブル「社員名簿」のレコードからテーブル「在籍人数」にcountifの様な方法で、値を返せればと思っています。

まず、社員名簿というテーブルがあります。
フィールドが
「エリア」(値一覧で選択、[東日本、中部、西日本、本社])
「部署」(値一覧で選択、[管理本部、事業本部、CS、BS]など)
「雇用形態」(値一覧で選択、[正社員、試験社員、契約社員]など)
「職責」(値一覧で選択、[部長、マネージャー、一般]など...続きを読む

Aベストアンサー

集計結果を表にする時のレイアウトの自由度を考えると関連テーブルからリレーションを使った
計算がいいかも知れません。

在籍人数テーブルに社員名簿テーブルにあるフィールドを全部作ります。社員名簿テーブルには
重複のない社員IDなどというフィールドも必要です。

例えば、社員名簿テーブルと在籍人数テーブルの「エリア」と「部署」と「雇用形態」の3フィー
ルドとも等しいというリレーションを作って、とCount(社員名簿テーブル::社員IDフィールド)と
いう計算フィールドを定義します。

在籍人数テーブルの「エリア」と「部署」と「雇用形態」の各フィールドにそれぞれ「東日本」
「CS」「正社員」と入力するとその人数が出ます。

Qファイルメーカー 一ヵ月後の日付をだすには?

入力日、タイプ:日付に2005/8/5と手動でいれたら、
有効期限(タイプ:日付)に自動で2005/9/5というように、入力日から一ヵ月後の日付を出すにはどのような計算式をいれたらよいのでしょうか?

参考書に載っていた
Date(Month(入力日)+ 1 ; Day(入力日); Year(入力日)という式を使うと
2005/08/01 と打ち込むと、2005/9/9 とでてしまいます。
2005/12/30の場合は、2006/1/1と出ます。
どうしたら、よいか教えてください。

Aベストアンサー

---------------------------------------------------
If ( Month ( Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ) ) > Month ( Date ( Month ( 入力日 ) + 1 ; 1 ; Year ( 入力日 ) ) )
;
Date ( Month ( 入力日 ) + 1 + 1 ; 0 ; Year ( 入力日 ) )
;
If(Day ( Date ( Month ( 入力日 ) ; Day ( 入力日 ) + 1 ; Year ( 入力日 ) ) ) = 1
;
Date ( Month ( 入力日 )+1+1 ; 0 ; Year ( 入力日 ) )
;
Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ))
)
------------------------------------------------------
フィールドタイプは「計算」で結果は「日付」です。

私が過去に他の方の回答に使用した式です。コピペで使えます。
検証は適当ですのでご自分でどうぞ。

---------------------------------------------------
If ( Month ( Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ) ) > Month ( Date ( Month ( 入力日 ) + 1 ; 1 ; Year ( 入力日 ) ) )
;
Date ( Month ( 入力日 ) + 1 + 1 ; 0 ; Year ( 入力日 ) )
;
If(Day ( Date ( Month ( 入力日 ) ; Day ( 入力日 ) + 1 ; Year ( 入力日 ) ) ) = 1
;
Date ( Month ( 入力日 )+1+1 ; 0 ; Year ( 入力日 ) )
;
Date ( Month ( 入力日 ) + 1 ; Day ( 入力日 ) ; Year ( 入力日 ) ))
)
------...続きを読む

Qフィールドの中のテキストを分割したい(ファイルメーカー)

よく分からないタイトルですみませんm(_ _)m

先日もこちらでファイルメーカの事を質問したばかりで大変恐縮なのですがどうかお助け下さい。
現在ファイルメーカー5.5 macで作った住所録があるのですが、これの修正を頼まれたのです。
修正内容は現在、「氏名フィールド」というものがあるのですが、これを「氏フィールド」と「名フィールド」に分けたいと言う事なのです。

「氏名フィールド」の氏と名の間に全角スペースが入っておりますのでこれをキーワードに計算式を作れば何とかなると思うのですがそれが???なのです。

一つの「氏名フィールド」から氏と名の間にスペースが入っているものを新たに「氏フィールド」と「名フィールド」分ける。また、スペースの入っていないものは「氏フィールド」に分ける方法をどうか教えてください。よろしくお願いします。

Aベストアンサー

◆フィールド「氏」の計算
1.全角スペースの位置を出す
Position(氏名," ",1,1)
2.「氏名」からその位置の1文字前まで抽出する

フィールド「氏」=
Left(氏名,Position(氏名," ",1,1) - 1)

◆フィールド「名」の計算
1.「氏名」から『フィールド「氏」と全角スペース』を
  取り除く(ヌルに置換する)

フィールド「名」=
Substitute(氏名,Left(氏名,Position(氏名," ",1,1) - 1) & " ","")

Qファイルメーカーの日付の検索

初心者です。お手間とらせます。ファイルメーカーで期間の検索を行ないたいと思います。日付...日付でこの間の検索が行なえることは知っています。実際に運用する場合、私より初心者の方が、使用します。期間の初日と期間の末日を入力すれば、内部的に、記号「...」を使用しないで、検索を行なえるようにしたいと思います。どなたかお力をお貸しください。よろしくお願いいたします。

Aベストアンサー

検索をスクリプトにすれば出来ます。ただし、検索時にスクリプトを実行させるボタンを押す
必要があります。

・「期間初日」と「期間末日」という日付グローバルフィールドを新たに作ります。

・スクリプトで検索モードにして、現在のファイルの日付フィールド(検索フィールド)を
 フィールド設定ステップで「期間初日」& “...”& 「期間末日」にして検索実行ステップ。
または
・「期間初日」<-「日付」 and 「日付」<=「期間末日」の自己リレーションを作って
 関連レコードのみ表示ステップです。

Qファイルメーカ 検索実行せずに該当するレコード数を知りたい

FM7です。

条件に合致したレコード数を知るために、現在は検索実行をした後に
Get(対象レコード数)
として求めていますが、検索実行をせずに知ることは出来ますか?

テーブルA
顧客-----地区名-----担当者
テーブルB
担当者---顧客数(計算 If テーブルAの担当者 = テーブルBの担当者 then 担当する顧客の数)

のような感じになると、ありがたいのですが。

Aベストアンサー

テーブルAとBを担当者でリレーションしてあってAは1レコードに顧
客一人と思っていいでしょうか。

ウチは5.5ですが、リレーション名が「担当」として
count(担当::顧客)
で出来てますよ。7でも同じだと思います。

Qファイルメーカー テキストの挿入で改行を挿入するには

初歩的な質問(だと思います)で申し訳ありません。
ファイルメーカーのスクリプトのテキストを挿入で、改行を挿入するにはどうしたら良いのでしょうか。ファイルメーカー4.0です。
色々検索してみましたが、答えが見つかりません。
よろしくお願いします。

Aベストアンサー

「¶」というのを二重引用符で囲んで追加してみてください。

Qファイルメーカで、こういう検索条件

MacOS10.3 / FileMaker4.0

初歩的な質問なのですが、検索条件で、何も入っていないデータだけを
検索したいときはどうすればよいでしょうか?
ちなみに、データが空以外のものだけを検索する場合は「>0」ですよね。

それと、ご存知であれば、ファイルメーカ関係のよいサイトがあればお教えください。

Aベストアンサー

空以外のデータ検索する場合は
1、任意の1文字を検索する場合は「@」
2、0個以上の任意文字列を検索する場合は「*」
です。
したがって空のデータと任意の文字の複数条件検索は上記と「=」を組み合わせればOKです。
空データが検索できない理由はファイルの中身やリレーションの構成などを見ないとよく分かりませんが、因みに当該データがリレーション又はルックアップデータならそのファイルデータが入った状態でコピーし、リレーションを削除して検索を試してみられてはどうでしょうか。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング