みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
filemaker server13とfilemaker pro13 の環境下で作業しています
採血データーをクロス集計で表示することに挑戦しています
リレーションとルックアップ関数を用いた手法を参考にしています
採血データーのテーブルは
・シリアルナンバー
・検査ID
・患者ID
・日付
・採血項目(白血球数などの項目)
・採血結果(数値やテキスト)
で構成しています
1項目1レコードとしていますので、1患者1検査あたり40レコード程あります
【任意の日付】の【横軸に検査ID】【縦軸に採血項目】の採血結果をクロス集計表示したいので
横軸の検査IDを繰り返しフィールド・計算
GetValue(ValueListItems(Get(ファイル名) ; "検査ID"); Get(計算式繰り返し位置番号))
として値一覧を用いて代入したとき
それに対応した患者IDを繰り返しフィールドに表示したいのです
検査IDと同様に値一覧を用いると同一患者が同一日に複数回採血をすることもあるので不適です
何か良い関数がありそうな気がするのですがわかりません
教えていただけますか
どうぞよろしくお願い致します
Offline
検査結果と同じ様に、患者IDをルックアップすればいいのでは。
Offline
Shin様 ご返信ありがとうございます
検査結果と同じリレーションとルックアップ関数で計算すると、虫食いのような結果になりました。
おそらく患者ごとに採血項目が違うことに由来すると考えます。
検査項目に依らない新たなリレーションを張って同様にすることで解決しました。
力技しかないのかしら
Offline
ごく普通のクロス集計ですがね。
具体的なデータの形式がわからないと、何とも。
Offline
一旦、検査ID毎にクロス集計しておき、それを患者IDのテーブルからみる、という構造にすれば、シンプルになります。
印刷するのでしたら、検査IDのテーブルでレイアウトを工夫すれば、そこで印刷可能です。
https://www.dropbox.com/s/06igmyuptdcaj … 2.zip?dl=0
Offline
Shin様 サンプルまで作成していただきありがとうございます
自分でも試行錯誤して、新たにリレーションを張らずに
値一覧「患者ID」にて
最初のフィールドに【患者ID】、2番目のフィールドに【検査ID】
2番目のフィールドの値のみを表示にチェックすることで
GetValue(ValueListItems(Get(ファイル名) ; "患者ID"); Get(計算式繰り返し位置番号))
を使って計算させることができ、昨日の新たなリレーションを用いたものと同じ結果を得られるということを確認できたところです。
同一レコードに検査IDと患者IDを持っていて
繰り返しフィールド
|検査ID1||検査ID2||検査ID3||検査ID4|・・・・・ と作ったときに
自己リレーションか何かうまい関数を使って
|患者ID1||患者ID2||患者ID3||患者ID4|・・・・・
とできないかなぁ と思って今回の質問をさせていただきました
これから作っていただいたサンプルをみて勉強させていただきます
繰り返しフィールドもクロス集計もあまり経験がないので
これを機に理解を深めます
ありがとうございました
Offline
Pages: 1
[ Generated in 0.005 seconds, 10 queries executed - Memory usage: 515.95 KiB (Peak: 520.86 KiB) ]