答案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
和一种可能的方法,可以让您的数据模型以后更加灵活。