キンコミ kintone user community

みんなの投稿

いつもお世話になっております。

職員健診の各種検査結果から、メタボの判定を自動で行わせようとしています。

メタボの判定基準は下記の通りです。

関数など色々とやっていますがうまくいかず。。。
何か妙案はありますでしょうか。。。m(_ _)m

picture_icon-02-02 基準.pdf
3件のコメント (新着順)
藤田 隆
2024/05/01 06:44

それぞれの判定毎に計算式を設定するとわかりやすくなると思います。
また、ラベルで判定基準を表記してあげるといいかも。

・メタボ判定の計算式
IF(STEP1_NG判定数>=1,
IF(STEP2_NG判定数>=2,"該当",
IF(STEP2_NG判定数=1,"予備軍","問題なし")
),
"問題なし"
)

・STEP1 NG判定数
IF(腹囲判定="NG",1,0)+IF(BMI判定="NG",1,0)

・腹囲 判定
IF(腹囲>=(IF(性別="男",85,90)),"NG","OK")

・BMI 判定
IF(BMI>=25,"NG","OK")

・STEP2 NG判定数
IF(血圧判定="NG",1,0)+IF(脂肪判定="NG",1,0)+IF(血糖_判定="NG",1,0)

・血圧 判定
IF(OR(最高血圧>=130,最低血圧>=85),"NG","OK")

・脂肪 判定
IF(OR(空腹時中性脂肪>=150,HDL<40),"NG","OK")

・血糖 判定
IF(OR(空腹時血糖>=100,HbA1c>=5.6),"NG","OK")


STEPごとの判定で区切りつける方法、スッキリですね!
かなさんの方法だと、一括表示ですが藤田様の方法だとSTEPごとの状態がわかりますね!
弊社にはメタボ判定から所見を出す医師が数人いるので、一括で良いか、S TEPごとの表示で経過を見たいか、医師ごとのカスタマイズしようと思います。
本当にありがとうございましたm(_ _)m

かな
建設業
2024/04/30 11:22

お疲れ様です!

IF ( 【性別】 = "男" ,
IF ( OR ( 【腹囲】 >= 85 , 【BMI】 >= 25 ) ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "予備軍" ,
IF ( AND ( AND (【血圧】< 130, 【血圧】< 85 ) ,
OR ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "予備軍" ,
IF ( AND ( AND (【血圧】< 130, 【血圧】< 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "予備軍" ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
OR ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "該当" ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "該当" ,
IF ( AND ( OR (【血圧】< 130, 【血圧】< 85 ) ,
AND ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "該当" ,

IF ( 【性別】 = "女" ,
IF ( OR ( 【腹囲】 >= 90 , 【BMI】 >= 25 ) ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "予備軍" ,
IF ( AND ( AND (【血圧】< 130, 【血圧】< 85 ) ,
OR ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "予備軍" ,
IF ( AND ( AND (【血圧】< 130, 【血圧】< 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "予備軍" ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
OR ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
AND ( 【空腹時血糖】 < 100 , 【HbA1c】 < 5.6 ) , "該当" ,
IF ( AND ( OR (【血圧】>= 130, 【血圧】>= 85 ) ,
AND ( 【空腹時中性脂肪】 < 150 ,【HDL】>= 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "該当" ,
IF ( AND ( OR (【血圧】< 130, 【血圧】< 85 ) ,
AND ( 【空腹時中性脂肪】 >= 150 ,【HDL】< 40 ) ,
OR ( 【空腹時血糖】 >= 100 , 【HbA1c】 >= 5.6 ) , "該当" ,"該当なし"
))))))))
))))))))



恐らくこれでできると思います。
【】の部分はそれぞれのフィールドコードを対応させてください。
やってることとしては、まず男性の場合で、腹囲もしくはBMIが該当したらパターン別でIFして、男性のパターンが終わったら女性の場合で同じくIFしていく感じです。
1 2 | 3 4 5
○ ○ | ○ ✕ ✕ 予備軍
○ ○ | ✕ ○ ✕ 予備軍
○ ○ | ✕ ✕ ○ 予備軍
○ ○ | ○ ○ ✕ 該当
○ ○ | ○ ✕ ○ 該当
○ ○ | ✕ ○ ○ 該当
上記に該当しない場合(偽の場合)「該当なし」
みたいな感じですね。

もうちょっとスマートな書き方があればいいんですけど、これしか思いつきませんでした…笑


かなさーん
またまた、ありがとうございました!
かなさんのnote見て勉強してはいるのですが、今回のケースは条件多くなってきてチンプンカンプンになりました。。。
かなさんの立ててくれた関数で、バッチリできました!
本当にありがとうございます!m(_ _)m

kopata
2024/04/29 14:08

はじめまして。

IF関数
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/if_function.html
OR関数
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/and_or.html

を使えばできる内容と思います。

確かの少しややこしいので、いっきに計算式にしようとしないで、
STEP1-1、STEP1-2 をそれぞれ評価して、そこからSTEP1を求める。
STEP2-3、STEP2-4、STEP2-5 をそれぞれ評価して、そこからSTEP2を求める。
STEP1 と STEP2 から全体の結果を求める。
という様に分解してやれば分かりやすいと思います。
頑張って下さい。


STEPごとに分けて考えることは思いついておりませんでした!
一気に条件分岐させるのではなく、分節していくとわかりやすいと勉強になりました!
ありがとうございましたm(_ _)m