如何根据多列在 Excel 中设置条件内容?

如何根据多列在 Excel 中设置条件内容?

我正在为我的 d&d 活动制作魔法物品数据库,将几本书和自制物品汇编成一个文件。我有一个基于物品稀有度和是否可消耗的价格清单。因此公式看起来如下:

IF (C4 = 'Very Rare') AND (D4 = 'no') F4 = 30.000

我觉得这应该是可能的,但是稀有度有 5 个级别,因此我需要 10 个 IF 语句来实现这个公式。我可以在 excel 中执行此操作吗?

编辑:这是我想要用此公式重新创建的价格表。 价位表

编辑2:这是我尝试让公式发挥作用的文件。 项目清单文件

答案1

如果您可以将价格表重新排列为三列,那么这就会变得容易。列标题将是这样的:

稀有程度 | 消耗品价格 | 非消耗品价格

我假设这些位于名为“查找”的工作表中,位于单元格 A1:C6 中(您说有 5 个选项)。您可以使用简单的 VLOOKUP 在该表中查找正确的行并从正确的列返回一个值,例如:

=VLOOKUP($C2,Lookups!$A$1:$C$6,2+($D2="No"),FALSE)

因此,这将查找查找表第一列 C2 中的任何内容(请注意,$ 表示对该表的固定引用,因此当您向下复制公式时不会超出其底部),然后从第二列获取一个值,如果 D2="No",则从第三列获取一个值(因为计算结果为 TRUE,相当于 1)。false 只是意味着您想要一个与稀有性描述完全匹配的值。

建成后,您可以根据需要更改价格或添加其他稀有级别(“空气”、“摇马蛋”)。

为了获得加分,请将您的查找表变成 Excel 中的实际表格,并将其命名为“RarityPrices”(或其他名称),在这种情况下,您的公式将如下所示:

=VLOOKUP($C2,RarityPrices,2+($D2="No"),FALSE)

稍微更容易阅读,并且如果在表中添加更多行,它将扩展,这样您就不必继续编辑公式。

答案2

看起来非消耗品的价格是消耗品价格的两倍,或者至少是消耗品价格的某个倍数。在这种情况下,您可以查找稀有物品的“基本”价格(消耗品价格),然后将其乘以倍数以获得非消耗品价格。

您可以选择将每种稀有度的乘数设置为不同的值(稍后,您可能希望将其绑定到其他属性)。无论如何,假设您有价格和乘数:

在此处输入图片描述

然后您可以使用 LET 和 XLOOKUP:

在此处输入图片描述

该公式:

=LET(x,XLOOKUP($H2,$A$2:$A$6,$B$2:$C$6,"Unknown rarity"),INDEX(x,1,1)*IF(I2="No",INDEX(x,1,2),1))

我们用XLOOKUP将基础价格和非消耗品乘数返回到名为 x 的变量中。然后我们可以在公式的后半部分引用 x,并说

如果 Consumable 列显示否,则将数组中的第一个值(即基准价格)乘以数组中的第二个值(即乘数),否则乘以 1

当然,LET并且XLOOKUP只在较新版本的 Excel 中可用,因此也许这个答案主要可以被视为信息,并作为使用的示例LET和一种可能的方法,可以让您的数据模型以后更加灵活。

相关内容