【发布时间】:2021-08-25 18:24:12
【问题描述】:
您好,我有一个 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)))))
【问题讨论】:
-
您能否创建一些示例输入以及该输入的预期输出。应该有足够的数据来捕捉你的 if then 树的每条腿。
-
天哪,伙计。如果一个程序员带着那个公式来找我,我会解雇他。我将发布一个答案,显示此表达式中的嵌套级别。也许这会有所帮助。
-
这是一个解析问题,所以也许你可以使用 PyParsing 之类的东西,或者在 NLTK 的基础上构建等式的部分,然后尝试将其重构为 Python。另见this SO question。
-
也许,这能回答你的问题吗? parsing excel style formula
-
VBA 是 Excel 工作表可移植性的最佳选择。 IE。不要使用 python。
标签: python pandas dataframe function