首页 > 解决方案 > 如何将 Excel 公式转换为 Python/伪代码

问题描述

我正在尝试将列的 Excel 公式CB转换为伪代码,然后我可以将其添加到我的 Python 脚本中。我已经查看了Excel 的结构化参考文档,但仍有一些东西我没有得到。

 =IF(CA2="NO",IF(OR(I2="X", I2="D", I2="V",I2="VE",I2="0.2 PCT ANNUAL CHANCE FLOOD HAZARD", 
I2="AREA NOT INCLUDED"), "UnMapped",IF(LEFT(R2,3)="NON","UnMod","Modernized")),IF(OR(BJ2="X", 
BJ2="D", BJ2="V",BJ2="VE",BJ2="0.2 PCT ANNUAL CHANCE FLOOD HAZARD", BJ2="AREA NOT INCLUDED"),
"UnMapped",IF(LEFT(BK2,3)="NON","UnMod","Modernized")))    

"UnMapped"在第一个IF(OR...)陈述之后,我陷入了困境。到目前为止,这是我的伪代码:

IF CA = "NO":
    IF (I2="X" OR I2="V" OR I2="V" OR I2="VE" OR I2="0.2 PCT ANNUAL CHANCE FLOOD HAZARD" OR I2="AREA NOT INCLUDED"):

      IF (LEFT(R2,3)="NON" OR LEFT(R2,3)="NON" OR LEFT(R2,3)="Modernized"):

    ELSE IF (BJ2="X" OR BJ2="V" OR BJ2="V" OR BJ2="VE" OR BJ2="0.2 PCT ANNUAL CHANCE FLOOD HAZARD" OR BJ2="AREA NOT INCLUDED"): 

      IF (LEFT(BK2,3)="NON" OR LEFT(BK2,3)="UnMod" OR LEFT(BK2,3)="Modernized"):

“未映射”应该去哪里?

标签: excelexcel-formulapseudocodenested-if

解决方案


我想这可能是你正在寻找的:

if CA2=="NO":
    if (I2=="X" OR I2=="V" OR I2=="V" OR I2=="VE" OR I2=="0.2 PCT ANNUAL CHANCE FLOOD HAZARD" OR I2=="AREA NOT INCLUDED"):
        return "UnMapped"
    elif (LEFT(R2,3)=="NON"):
        return "UnMod"
    else:
        return "Modernized"
elif(BJ2=="X" OR BJ2=="V" OR BJ2=="V" OR BJ2=="VE" OR BJ2=="0.2 PCT ANNUAL CHANCE FLOOD HAZARD" OR BJ2=="AREA NOT INCLUDED"):
    return "UnMapped"
elif(LEFT(BK2,3)=="NON"):
    return "UnMod"
else:
    return "Modernized"

推荐阅读