【问题标题】:Extract data from two tables to summary report based on primary key根据主键从两个表中提取数据到汇总报告
【发布时间】:2015-04-27 10:17:27
【问题描述】:

我有两张 Excel 表格,一张名为 plan,另一张名为 sewing data。我想从sewing data 表中提取数据到摘要报告中。两个表都包含主键,一些数据来自plan 表,其他来自sewing data


样本数据:

[plan]
ID | Style | SO    | QTY
---+-------+-------+------
1  |  a    | 20050 | 100 
2  |  b    | 20051 | 100


[sewing data]
ID | Day1in | Day1out | Day2in | Day2out | Day3in | Day3out
---+--------+---------+--------+---------+--------+-----------
1  | 20     |         |  10    |   25    |        |
2  |        |         |  50    |         |        |
2  |        |         |        |         |   50   |  70
1  |        |         |        |         |   70   |  75

我的输出应该是这样的:

[summery report]
ID | Style | SO   | Qty | Day1in | Day1out | Day2in |Day2out|Day3in| Day3out
---+-------+------+-----+--------+---------+--------+-------+------+-----------
1  |  a    |20050 |100  |  20    |         |  10    |   25  |  70  |   75
2  |  b    |20051 |100  |        |         |   50   |       |  50  |   70

【问题讨论】:

  • 我们可以在您尝试过的代码和编程方面为您提供帮助,请添加更多详细信息,例如工作表结构和输出以及您尝试过的代码;)。
  • 没有任何代码,我正在从 excel 中的 sumif 函数中提取数据,如果您需要两个 excel 表格,请告诉我如何将表格上传到此
  • 您不需要上传所有数据,只需在我编辑您的帖子时给我们一些示例数据和输出,请将其编辑为您想要的;)。
  • ok计划数据如下
  • 不,我已经使用 sumif 函数来降低加载速度,在计划表中有 7000 行,在缝纫数据表中可能有 25000 行。所以需要自动化这个

标签: excel excel-formula vlookup


【解决方案1】:
  1. 在 [plan] 表上,创建一个命名范围“plandata”以涵盖该计划 数据

    1. 在 [缝纫数据] 表上,添加 3 列,标题为 Style、SO、Qty,带有 公式

    =vlookup(A2, plandata, 2, false)
    =vlookup(A2, plandata, 3, false)
    =vlookup(A2, plandata, 4, false)

分别(这里 A2 是对 ID 单元格的引用,plandata 是您在步骤 1 中创建的 [plan] 表中的命名范围,数字 2/3/4 是查找所需的列号,即样式、SO 和 Qty,false 表示完全匹配查找)。

  1. 将这些公式复制到整个 [缝纫数据] 表中
  2. 选择 [缝纫数据] 中的任意单元格,然后插入 > 数据透视表(选择“新工作表”)
  3. 在数据透视表向导中,拖动 ID、样式。 SO 和 Qty 作为行标签, 和 Day1In..Day3Out 作为 ∑ 值。

【讨论】:

  • 是的,我为此使用了 sumif 函数和 vlookup,但同时加载工作表时出现了一些错误。意味着太多的时间去计算,所以我需要宏至少只花 20 分钟来计算这个
  • 一些错误?什么错误?你必须具体。请清楚你在问什么。如果您像这样含糊其辞,没有人可以帮助您。另外,请多加注意你的 cmets 和问题“所以我需要宏至少只花 20 分钟来校准这个”是没有意义的。如果您认真对待自己的问题,您会发现自己经常找到答案——如果您不认真对待,我们为什么要这样做?
  • 对于上面的评论和我的要求,我真的很抱歉,我有两张 Excel 表,一张叫做计划,另一张是上面的缝纫数据,在计划表中包含 6k 行和缝纫数据25k 行。我正在使用 sumif 函数将数据收集到另一张称为汇总报告的工作表中。打开两个文档获取输出时,这太慢了。
  • 亲爱的爱德华,如果你能帮助解决这个问题,请联系我,即使我的问题不清楚,我在这里通过Skype或任何事情来解释这个,因为这真的很紧急,必须这样做本周
  • 所以要明确一点 - 没有错误,只是很慢,需要 20 分钟来计算,是吗?
【解决方案2】:

如果 VLOOKUP 在第一个中找不到列标题标签,您可以通过将第一个 VLOOKUP function 包装在一个 IFERROR function 中来创建一个通用的公式,这会将控制权传递给第二个 SUMPRODUCT function。在 B15 作为,

=IFERROR(VLOOKUP($A15, $A$3:$D$4, MATCH(B$14, $A$2:$D$2, 0), FALSE), SUMPRODUCT($B$8:$G$11, ($A$8:$A$11=$A15)*($B$7:$G$7=B$14)))

根据需要向右和向下填充。

        

列标题标签完全匹配非常重要;一个或另一个没有前导空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多