【发布时间】:2020-01-06 22:51:03
【问题描述】:
我已经尝试了一天多的时间来解决这个问题,但运气不佳。我之前已经成功使用过 SUMIFS、INDEX、MATCH、COUNTIF、“--”等数组函数,我不是新手,也不是这些方面的专家。我似乎无法将它们正确地编织在一起,而且很可能是在一条完全不正确的路径上。
基本上,我正在尝试聚合来自多个电子表格的数据,需要将各种项目(行)映射为规范形式以进行求和。
这里的图片显示了我的任务的一个代表性但简化的版本。此示例电子表格(Final...、Mapping、DataSet1、DataSet2)上的每个“区域”实际上位于不同的电子表格中,每个 xlsx 中有几张 50-150 行的工作表。
请注意,B 列中的名称是非常随意的(意味着并非所有 P1 都具有“x”模式,如此处所示为 x1、x2 等。不要依赖名称中的任何模式,除了 x、y ,映射表中的 z 是数据集中 B 列中名称的子字符串(不区分大小写,尾随匹配)。
在图像中,最终结果表(手动求和)是我想通过(数组)公式计算的结果:单个公式是理想的(假设我有许多电子表格从中提取月度数据,所以我不能轻易修改,但可以根据需要创建一个临时电子表格,因此对辅助列或辅助行开放)。
这是过程 - 对于最终结果表中的每个名称 (B3-B5),我想从它的组件中总结名称如下:
- 在映射表中查找所有匹配项(因此对于 P1,公式 =IF($C$10:$C$15=$B3, $B$10:$B$15,"") 给出 {"x1";" ";"";"x2";"";"x3"}。
- 然后我想搜索 B19:B26 中的 x1、x2 和 x3 中的每一个以获取 DataSet1 中的第 21、22、24、25、26 行,并搜索 B31:B35 以获取 DataSet2 中的第 32 行,然后将一月总计进入 C3。 (有效, C3=C21+C22+C24+C25+C26+C32)。 P2 和 P3 也一样,到 2 月、3 月、...
我被困在如何从 2 的中间结果中删除空白或 0 或 Div0 或此类“错误行”,并且还需要使用 2 个不同大小的数组(上面示例 2 中的 3 个有效行,忽略空白)搜索数据集中的许多行。我尝试了 SEARCH("*"&IF($C$10:$C$15=$B3, $B$10:$B$15,""), $B$19:$B$26) 但得到了意想不到的结果。我试图用 TRUE/FALSE 和 1/0 等替换中间结果 {"x1";"";"";"x2";"";"x3"} 中的文本以帮助 INDEX 或 MATCH ,但因下游(“周围”)公式中的错误而受阻。
提前致谢。
【问题讨论】:
标签: excel array-formulas