我很难绕过这个继承公式中的逻辑来计算ASCVD风险。在PowerBI中操作数据之前,在SQL数据库中处理数据(使用模糊逻辑来匹配记录),因此如果有一个首选的位置来处理它,我可以使用任何一个。
=IF(
OR(
(AGE)<40,
(AGE)>79,
(TCRow)<130,
(TCRow)>320,
(HDLRow)<20,
(HDLRow)>100,
(BPSystolicRow)<90,
(BPSystolicRow)>200,
AND((DiabetesRow)="",
(DiabetesRowNo)=""),
AND((ONBPMEDICATIONROW)="",
(OFFBPMEDICATIONROW)=""),
AND((SmokerRow)="",
(SmokingRowNo)="")), "",
IFERROR(IF((GenderFemaleRow)=1, 1-0.9665^(EXP
(((SUM(LN((AGE))*-29.799,
LN((AGE))^2*4.884,
LN((TCRow))*13.54,
LN((AGE))*LN((TCRow))*-3.114,
LN((HDLRow))*-13.578,
LN(D3)*LN((HDLRow))*3.149,
IF((ONBPMEDICATIONROW)=1,
ROUND(LN((BPSystolicRow))*2.019, 2),
LN((BPSystolicRow))*1.957),
IF((SmokerRow)=1, 7.574, 0),
ROUND(LN((AGE))*IF((SmokerRow)=1, -1.665, 0), 3),
IF((DiabetesRow)=1, 0.661, 0)))-(-29.18)))), 1-0.9144^(EXP((SUM(LN((AGE))*12.344,
LN((TCRow))*11.853,
LN((AGE))*LN((TCRow))*-2.664,
LN((HDLRow))*-7.99,
LN((AGE))*LN((HDLRow))*1.769,
IF((ONBPMEDICATIONROW)=1,
LN((BPSystolicRow))*1.797,
LN((BPSystolicRow))*1.764),
IF((SmokerRow)=1, 7.837, 0),
IF((SmokerRow)=1,
LN((AGE))*-1.795, 0),
IF((DiabetesRow)=1, 0.658, 0))-(61.18))))), ""))
答案 0 :(得分:2)
我有机会参加。简而言之,公式说:
=IF(ParametersOutOfRangeOrMissing,"",CalculateRisk)
因此,如果某些数据超出范围或丢失,请返回&#34;&#34;否则计算风险。
ParametersOutOfRangeOrMissing
是一项检查,以确保所有必要的数据都可用,并且数据在风险计算有效的范围内。这是一个很大的OR
声明,如果存在多种情况中的任何一种情况(太年轻,太老,收缩压过高或太低等),这种风险计算都不适用。 )。这部分公式是:
OR(
(AGE)<40, (AGE)>79,
(TCRow)<130, (TCRow)>320,
(HDLRow)<20, (HDLRow)>100,
(BPSystolicRow)<90, (BPSystolicRow)>200,
AND(
(DiabetesRow)="", (DiabetesRowNo)=""
),
AND(
(ONBPMEDICATIONROW)="", (OFFBPMEDICATIONROW)=""
),
AND(
(SmokerRow)="", (SmokingRowNo)="")
)
公式的CalculateRisk
部分是:
CalculateRisk = IFERROR(AttemptRiskCalculation,"")
所以回归&#34;&#34;如果在计算过程中发生任何错误,否则返回计算的风险。
AttemptRiskCalculation
是基于性别的:
IF((GenderFemaleRow)=1,FemaleRisk,MaleRisk)
我假设(GenderFemaleRow)=1
表示女性,但可能是男性。
女性和男性风险的公式相似,但不相同。这是女性面临的风险:
FemaleRisk=1-0.9665^(EXP(((SUM(
LN((AGE))*-29.799,
LN((AGE))^2*4.884,
LN((TCRow))*13.54,
LN((AGE))*LN((TCRow))*-3.114,
LN((HDLRow))*-13.578,
LN(D3)*LN((HDLRow))*3.149,
IF(
(ONBPMEDICATIONROW)=1,
ROUND(LN((BPSystolicRow))*2.019, 2),
LN((BPSystolicRow))*1.957
),
IF((SmokerRow)=1, 7.574, 0),
ROUND(LN((AGE))*IF((SmokerRow)=1, -1.665, 0), 3),
IF((DiabetesRow)=1, 0.661, 0)
))-(-29.18))))
男性:
MaleRisk=1-0.9144^(EXP((SUM(
LN((AGE))*12.344,
LN((TCRow))*11.853,
LN((AGE))*LN((TCRow))*-2.664,
LN((HDLRow))*-7.99,
LN((AGE))*LN((HDLRow))*1.769,
IF(
(ONBPMEDICATIONROW)=1,
LN((BPSystolicRow))*1.797,
LN((BPSystolicRow))*1.764
),
IF((SmokerRow)=1, 7.837, 0),
IF((SmokerRow)=1, LN((AGE))*-1.795, 0),
IF((DiabetesRow)=1, 0.658, 0)
)-(61.18))))
希望有所帮助