在数组中找到对应的行

在数组中找到对应的行

我有一个产品清单,其中包含每种产品的重量。我还有另一个包含不同重量范围的表格,每个范围的存储成本都不同。

我想要一个公式来识别每种产品属于哪个范围并得到相应的存储成本。

这是我所拥有的(顶部:产品列表,底部:每个范围的存储价格):

我该怎么做呢?有什么想法吗?

最好的

加布里埃尔

答案1

如果您可以按如下方式布局数据:

在此处输入图片描述

..以便存储成本是第三列而不是第一列,您可以使用以下公式:

=VLOOKUP($E2,$A$12:$C$16,3,TRUE)

第一个参数是您要查找的值,第二个参数是您要查找的整个范围(不包括标题),第三个参数是您要从中获取数据的表的列,最后一个参数指定在范围内搜索。

还要注意,你的 kg 值必须是格式化这样不是实际上包含字符串“KG”作为值。例如,我将它们格式化为如下形式:

在此处输入图片描述


编辑:如果您希望保持数据处于相同的布局中,则可以使用此方法:

=INDEX($A$12:$A$16,MATCH(E2,$B$12:$B$16,1))

可读性稍差一些,但并不像我刚开始时那么糟糕。请注意,您实际上不需要该Weight to:列,这只需要检查它的多于Weight from:

答案2

您可以使用以下公式:

=IF(E2<=$C$12,$A$12,IF(E2<=$C$13,$A$13,IF(E2<=$C$14,$A$14,IF(E2<=$C$15,$A$15,IF(E2<=$C$16,$A$16)))))

为了理解其背后的逻辑,我将展示它的工作原理:

IF(E2<=$C$12
    $A$12
ELSE
    IF(E2<=$C$13
       $A$13
    ELSE
        IF(E2<=$C$14
          $A$14
        ELSE
            IF(E2<=$C$15
               $A$15
            ELSE
                IF(E2<=$C$16
                   $A$16
                END IF
            END IF
        END IF
    END IF
END IF

它比@Jonno 的答案更丑陋和混乱,但当你理解它的逻辑时它就非常简单了。

相关内容