如何在 OpenOffice Calc(或 Excel)中为 VLOOKUP/LOOKUP/等设置 2 个条件/标准

如何在 OpenOffice Calc(或 Excel)中为 VLOOKUP/LOOKUP/等设置 2 个条件/标准

我有这个电子表格,它开始是一个游戏(黑手党战争 2)的愚蠢辅助工具,但后来却变成了一个棘手的电子表格问题。

在游戏中,你的角色有 9 个“插槽”用于放置武器和盔甲,每个“类型”各 1 个:轻型武器、重型武器、护甲、头盔等。因此,我列出了游戏中所有可用的武器和盔甲,每行 1 个。示例:

SHOP        ITEM TYPE       ITEM NAME       ATK DEF PRICE   EQUIPPED?
Marketplace Weapon Light    Konrad Knife    16  5   5.500
Marketplace Weapon Light    Ice Queen       19  6   8.200
Marketplace Armor Body Up   Layered Polym   0   31  8.600
Marketplace Armor Body Up   Full Shield     7   42  17.650
Marketplace Weapon Heavy    Konrad Bullpup  53  25  24.500
Marketplace Weapon Heavy    Full Moon Blow  73  12  24.500  x
Marketplace Armor Body Low  Knee Pads       17  26  14.200  x
Marketplace Armor Body Low  Army Boots      15  55  24.500
Bone Yard   Weapon Light    Bone Launcher   41  2   9.400   x   
Neon Strip  Vehicle Ground  Supercharged    41  34  24.500
Dead End    Weapon Heavy    Sharp Sickle    21  5   24.500
Dead End    Armor Body Low  Unholy Boots    5   36  15.000
Dead End    Armor Head      Hockey Mask     5   18  15.900  x

最后一列表示我已经购买并装备的物品(标有“x”)。我需要一个公式,对于每个“插槽”(物品类型),返回与我正在使用的该类型物品相关的信息。那就是:

ITEM TYPE       SHOP NAME   ITEM NAME       ATK DEF PRICE
Weapon Light    Bone Yard   Bone Launcher   41  2   9.400
Weapon Heavy    Marketplace Full Moon Blow  73  12  24.500
Weapon Special  --          --              --  --  --
Armor Body Up   --          --              --  --  --
Armor Body Low  Marketplace Knee Pads       17  26  14.200
Armor Head      Dead End    Hockey Mask     5   18  15.900
Vehicle Ground  --          --              --  --  --
Vehicle Water   --          --              --  --  --
Vehicle Air     --          --              --  --  --

项目类型是固定的,因此可以进行硬编码。每行对应一个项目类型。

因此,对于第一行结果,它将返回第二列为“武器灯”且最后一列为“x”的行的数据。基本上,我需要一个 LOOKUP(或 VLOOKUP,或其他任何函数),使用 2 个条件来查找给定的行、项目类型和 X 标记。

问题是:如何?

我正在使用 OpenOffice Calc 3.2.1,但由于它与 MS Excel 共享许多功能,因此 Excel 的答案也很好(只要它只使用常规公式,不使用 VBScript 或宏或 VBA 等)

最后但同样重要的一点是,我们也欢迎提出重新排列数据的建议/解决方案,以便更容易解决这个问题。

谢谢!

答案1

以下是如何在表中查找每个项目的商店名称。如果第一个表位于A1:G14,而您要填写的第二个表位于K1:Q10,则您可以在 中使用以下公式L2查找 中类型的装备项目的商店名称K2

=IFERROR(INDEX($A$1:$A$14,MIN(IF($B$2:$B$14=K2,IF($G$2:$G$14="x",ROW($B$2:$B$14),1000000),1000000))),"--")

Ctrl+ Shift+将公式输入为数组公式Enter。如果操作正确,公式将显示在 中{=...}。此公式可以填入列中。

要使此公式适应其他列,您必须将INDEX公式的第一个参数更改为第一个表中的相应列。例如,要查找项目名称,您需要将其用作公式$C$1:$C$14的第一个参数INDEX

编辑:

好吧,我刚刚检查了 OpenOffice Calc,不幸的是它不支持IFERROR。因此,这里有一个更长、更笨拙的公式版本,可以在 OO Calc 中使用:

=IF(ISERROR(INDEX($A$1:$A$14;MIN(IF($B$2:$B$14=K2;IF($G$2:$G$14="x";ROW($B$2:$B$14);1000000);1000000))));"--";INDEX($A$1:$A$14;MIN(IF($B$2:$B$14=K2;IF($G$2:$G$14="x";ROW($B$2:$B$14);1000000);1000000))))

这也必须通过按 Ctrl+Shift+Enter 输入为数组公式。请注意,您必须适应两个都 INDEX在其他列中使用时公式。

相关内容