我正在尝试将这个Excel工作表公式转换为Python,但我不完全理解发生了什么。我理解这段代码中的单元格引用和“if(logical\u test,[value\u if\u true],[value\u if\u false]”格式,但我在试图理解这段代码时迷失了方向:
=IF('Sales on Amazon'!$K2="Standard", IF(
AND(
IF(
'Sales on Amazon'!$G2,
14/16,
12/16
)
>='Sales on Amazon'!$E2,
MAX(
'Sales on Amazon'!$B2:$D2
)
<=15,
MIN(
'Sales on Amazon'!$B2:$D2
)
<=0.75,
MEDIAN(
'Sales on Amazon'!$B2:$D2
)
<=12
),
"SML STND",
"LRG STND"
),
IF(
OR(
'Sales on Amazon'!$J2>165,
'Sales on Amazon'!$E2>150,
MAX(
'Sales on Amazon'!$B2:$D2
)>108
),
"SPL OVER",
IF(
'Sales on Amazon'!$J2>130,
"LRG OVER",
IF(
OR(
'Sales on Amazon'!$E2>70,
MAX(
'Sales on Amazon'!$B2:$D2
)>60,
MEDIAN(
'Sales on Amazon'!$B2:$D2
)>30
),
"MED OVER",
"SML OVER")
)
))
这应该很有趣。。。。所以您有一个名为
Sales on Amazon
的数据表,这是引用的。这就是你的数据所在。你知道吗K
中的值等于字符串“Standard”,那么2到7是您的if
语句的条件,8到17是您的条件。你知道吗所有这些都需要
True
为AND
返回True
G
列中的值是True
,则0.875
,否则0.75
,如果大于或等于E
列中的值列范围的
max
大于或等于15
列范围的
min
小于或等于0.75
列范围的
median
小于或等于12
这是对
AND
的评估如果2、3、4和5是
True
,SML STND
否则
LRG STND
这结束启动公式的第一条if语句的
True
条件。这将开始启动公式的第一条if语句的
False
条件。如果
If
语句的条件是True
,则其中只有一个条件需要是True
。如果列
J
中的值大于165
或者如果列
E
中的值大于150
或者列范围
B, C, D
的max
大于108
如果任何一个
8, 9, or 10
计算为True
,那么SPL OVER
否则如果它们都是
False
,那么如果列J
的值大于130,那么LRG OVER
ELSE 13到16是12的
True
条件,这是8、9和10的False
条件。只有一个语句需要返回true,整个Or语句才是
True
,17是False
条件。如果列
E
中的值大于70
或者列范围
B, C, D
的max
大于60
或者列范围
B, C, D
的median
大于30
如果任何一个
13, 14, or 15
计算为True
,那么MED OVER
否则
SML OVER
就在这里。你知道吗
要测试它,只需查看数据并完成这些步骤,看看您得到的答案是否与Excel中的值相同。你知道吗
我之所以说列是因为我看到公式有
$B2
$D2
等,所以我假设这个公式是为一系列数据复制下来的。但是,它只尊重同一行中那些列的值。你知道吗相关问题 更多 >
编程相关推荐