【问题标题】:Perform lookup of every cell in a range using Excel (for Mac)使用 Excel 查找范围内的每个单元格(适用于 Mac)
【发布时间】:2018-03-29 07:00:58
【问题描述】:

鉴于 Excel 中的一行有可变数量的列填充了项目编号,我想在另一个表中进行查找,列出填充列中每个项目的成本,并对总成本求和。我的 Google-fu 让我失望了,因为我似乎找不到任何方法来对范围内的每个单元格执行 Excel 公式(在这种情况下为 VLOOKUP)。基本上,如果我有以下表格:

物品成本 Item | Cost A | 10 B | 20 C | 40

订单 Order | 1 | A 2 | A | B 3 | B | C

在给定订单号的情况下,如何计算下表中的总数?

订单摘要 Order | Total 1 | 10 2 | 30 3 | 60

我设法编写了一些公式,以Orders!$B$2:$C$2 的形式生成查找范围。我想我可以使用该范围作为某些公式的输入,以将按顺序排列的项目映射到它们的项目成本并求和。我曾希望我可以对范围内的每个项目执行 VLOOKUP,它可以从 ItemCosts 表中返回一个范围,然后我可以对其求和,但 VLOOKUP 仅将单个单元格作为查找值。我觉得我错过了一些明显的东西。我应该在VBA中做吗? This answer 提到 VLOOKUP 可以获取一个数组,然后返回一个数组,但我无法在 Excel 2016 for Mac 中重现它。它只是将第一个匹配项作为单个值返回。

编辑: 根据 cmets,未标准化的 Orders 表似乎是个问题。但即使看起来像这样,我也不清楚如何查找每个项目的成本,以便计算总成本。

订单 Order | Item 1 | A 2 | A 2 | B 3 | B 3 | C

【问题讨论】:

  • 您当前的数据布局未标准化。例如,我的意思是假设一个新订单附带 5 件商品。然后,您必须对电子表格进行重大更改。我认为,一个更好的设计是让每个订单项目占据一行的订单数据。然后,您可以使用公式在 Excel 中处理它,或者更好的是,使用带有汇总的数据透视表。
  • 我明白你的意思,但包含 5 件商品的订单不一定需要更改电子表格,因为我已经设法使用 COUNTA 动态计算包含商品的范围。
  • 如你所愿,但如果我是你,我会规范化订单,然后用数据透视表点击它。
  • 好的,假设我这样做。我仍然有一系列项目,我需要查看每个项目的成本。如何使用公式或数据透视表做到这一点?我对数据透视表不太熟悉,当我尝试创建关系数据模型时,我发现 Excel for Mac 不支持它们。
  • 是 |代表一个新列?

标签: excel excel-formula ms-office excel-2016


【解决方案1】:

我将提出两种使用“标准公式”生成所需输出的方法。我想,可能有一个数组函数可以在没有辅助列/工作表的情况下解决这个问题,但它们往往很复杂且难以维护。

对于标准化版本,您可以执行以下操作:

1) 在订单表中添加一个值列:

'Column of Cost in ItemCost Table' = ColumnCost
'Column of Item in ItemCost Table' = ColumnItem

Order | Item | Value
1     | A    |=index(ColumnCost, match(ItemCell, ColumnItem, 0))
2     | A    |...
2     | B    |...
3     | B    |...
3     | C    |...

2) 使用 sumif 公式根据订单号对订单表中的 Value 列求和。

对于非规范化版本,您可以使用与订单表具有相同形式和尺寸的帮助表来代替帮助列。

使用与上例相同的索引公式结构,但不使用订单表中的 ItemCell。如下所示:

订单

Order |
1     | A
2     | A | B
3     | B | C

订单助手

Order |
1     | 10
2     | 10 | 20
3     | 20 | 40

对于汇总表,您只需对相应列进行汇总即可。

您可以在此处找到一个示例: https://ufile.io/rbxf1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    相关资源
    最近更新 更多