有人可以按逻辑进程解释这个excel工作表公式吗?

时间:2015-07-16 03:23:12

标签: python excel excel-formula

我正在尝试将此Excel工作表公式转换为Python,但我并不完全了解正在发生的事情。我理解这段代码中的单元格引用和“if(logical_test,[value_if_true],[value_if_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")
  )
))

1 个答案:

答案 0 :(得分:0)

这应该很有趣....所以你有一个名为Sales on Amazon的数据表,这是引用的。这就是您的数据所在。

  1. 如果列K中的值等于字符串“Standard”,则 2到7 是您{{1> True 的条件声明, 8到17 if 条件。
  2. 所有这些都必须False才能为True

    返回True
    1. 如果列AND中的值为G,则为True,否则为0.875,如果该值大于或等于列{{1}中的值}}
    2. 0.75范围的E大于或等于max

    3. B, C, D范围的15小于或等于min

    4. B, C, D范围的0.75小于或等于median

    5. 这是B, C, D

      的评估
      1. 然后,如果2,3,4和5是12AND

      2. 其他True

      3. 这将结束启动公式的第一个if语句的SML STND条件。

        这会启动启动公式的第一个if语句的LRG STND条件。

        True语句的条件只有False True才有If

        1. 如果True列中的值大于J

        2. 或者,如果165列中的值大于E

        3. 或列150范围的max大于B, C, D

        4. 然后,如果有任何108评估为8, 9, or 10,那么True

        5. 如果它们都是SPL OVER,那么如果列False的值大于130,那么J

        6. ELSE 13到16是12的LRG OVER条件,这是8,9和10的True条件。

          只有一个人需要将整个Or语句的true返回为False,而17是True条件。

          1. 如果False列中的值大于E

          2. 或列70范围的max大于B, C, D

          3. 或列60范围的median大于B, C, D

          4. 然后,如果有任何30评估为13, 14, or 15,那么True

          5. 其他MED OVER

          6. 你有它。

            要测试它,只需查看数据并完成这些步骤,看看你得到的答案是否与Excel中的值相同。

            我说专栏的原因是我看到公式有SML OVER $B2等等。所以我假设这个公式被复制到一列数据的列中。但它只会尊重同一行中这些列的值。