Python If条件如何以更具可伸缩性和性能的方式编写?

2024-05-23 21:07:11 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个Excel公式,我想用Python翻译/重写它。但正如你所见,这是一个巨大的条件结构。每个Excel单元格都是我的数据集中的一列,它的定义在这里并不重要,因为我只是想知道如何将其转换为Python语言。因此,任何帮助都是非常感谢的。我想创建一个条件结构的以下代码是:我想知道如何使用if条件创建它

#Review Reason Formula
=IF(AND(DG1=1,G1+H1>8*BV1,G1+H1>0,AC1+AR1<10),0,IF(AND(DG1=1,G1+H1>30),0,IF(DG1-J1>0,IF(K1=1,IF(CK1<3,"NLA",IF(DP1=1,"auto_URGENTE","auto")),IF(SUM(M1:N1)>0,IF(M1=5,"Quality Block","Active Replacement"),IF(DN1=1,IF(DG1>0,"Demand",0),IF(CK1>$BJ$5,(IF(AND(DD1>0,E1=1),IF(DP1=1,"auto_URGENTE","auto"),IF(I1>0,"External PO",IF(AND(DH1=0,DP1=0),0,IF(DP1=1,"auto_URGENTE","auto"))))),IF(CK1>$BJ$6,IF(DP1=1,"auto_URGENTE","auto"),"Critical"))))),IF(AND(G1+H1+I1+J1+SUM(BK1:BQ1)<0,CI1>0),"BO",IF(K1&L1&M1&N1="0000",IF(OR((AB1+AA1)*0.4<AVERAGE(O1:AB1),(AQ1+AP1)*0.4<AVERAGE(AD1:AQ1)),IF(G1+I1+H1+J1<AB1+AA1+AQ1+AP1,IF((VLOOKUP(A1,SumIfsReplacement!A:B,2,0))*1>AA1+AB1+AP1+AQ1,IF(CN1<0,"Possible BO",0),0),0),0),0)))))


Tags: andautoif条件h1j1g1m1
1条回答
网友
1楼 · 发布于 2024-05-23 21:07:11

以下是此表达式中的嵌套级别。也许这能帮你翻译,但我怀疑

=IF(
    AND(DG1=1,G1+H1>8*BV1,G1+H1>0,AC1+AR1<10),0,
    IF(
        AND(DG1=1,G1+H1>30),0,
        IF(DG1-J1>0,
            IF(K1=1,
                IF(CK1<3,"NLA",IF(DP1=1,"auto_URGENTE","auto")),
                IF(SUM(M1:N1)>0,
                    IF(M1=5,"Quality Block","Active Replacement"),
                    IF(DN1=1,
                        IF(DG1>0,"Demand",0),
                        IF(CK1>$BJ$5,
                            (IF(AND(DD1>0,E1=1),
                                IF(DP1=1,"auto_URGENTE","auto"),
                                IF(I1>0,"External PO",
                                    IF(AND(DH1=0,DP1=0),0,
                                        IF(DP1=1,"auto_URGENTE","auto")
                                    )
                                )
                            )),
                            IF(CK1>$BJ$6,
                                IF(DP1=1,"auto_URGENTE","auto"),"Critical"
                            )
                        )
                    )
                )
            ),
            IF(
                AND(G1+H1+I1+J1+SUM(BK1:BQ1)<0,CI1>0),"BO",
                IF(
                    K1&L1&M1&N1="0000",
                    IF(
                        OR((AB1+AA1)*0.4<AVERAGE(O1:AB1),(AQ1+AP1)*0.4<AVERAGE(AD1:AQ1)),
                        IF(G1+I1+H1+J1<AB1+AA1+AQ1+AP1,
                            IF((VLOOKUP(A1,SumIfsReplacement!A:B,2,0))*1>AA1+AB1+AP1+AQ1,IF(CN1<0,"Possible BO",0),0
                            ),0
                        ), 0
                    ), 0
                )
            )
        )
    )
)

相关问题 更多 >