【问题标题】:EXCEL Array SUM IF unique combinations of multiple criteriaEXCEL Array SUM IF 多个条件的唯一组合
【发布时间】:2018-05-13 16:56:07
【问题描述】:

是否可以基于在求和之前搜索不同数据组合的表创建数组公式?以下是一些示例数据:

   |    A     |     B     |     C     |     D     |
---------------------------------------------------
 1 | 1 Jun    | Charlie   | D         | 1.3       |
 2 | 1 Jun    | Charlie   | N         | 1.4       |
 3 | 1 Jun    | Dave      | D         | 1.3       |
 4 | 2 Jun    | Charlie   | N         | 0.6       | 
 5 | 2 Jun    | Dave      | D         | 1.5       |

我希望数组公式能够做的是查看表格,忽略 B 列并告诉我哪些不同的行(A、C 和 D 或更多标准),如果它们是唯一的,则对 D 列求和。在这个例子中,它不应该对第 3 行求和,因为在 6 月 1 日,“D”已经有了 1.3。

数据透视表和 VBA 已经推出,因为我正在为超级限制计算机上的最低级别用户设计它。

编辑:预期结果的图片,更改了样本数据以反映结果。

我正在寻找的数据类型......我用 LName 替换了 ID 以进行可视化。我需要排除个人并仅按他们的模式获得飞行小时数。您可以在图像的底部看到,有 2 个人在一架飞机上。我使用 MAX 来防止它对时间进行求和并扭曲时间。

左侧的级别是日期、飞机、航班号,然后是人员。我需要将小时数汇总到每个日期的航班号。

原来的公式是

=SUM((FLTD_HRS)*(FLTD_DATE>=$D$3)*(FLTD_DATE<=$D$4)*(IF(FLTD_ACFT_MDS=CONFIG!$F$8,1,0)))

然而,事实上,并没有让我获得独特的航班。我更喜欢数组公式而不是数据透视表.... XD

【问题讨论】:

  • 您能否显示您的表格的预期结果?
  • 发表在编辑中。
  • “如果它们是唯一的则求和”对我来说没有任何意义。您希望它忽略特定行,因为...为什么是现在?您的预期结果与您的样本数据不一致。我只是不确定你想做什么。
  • 我的原始数据表中的数据不止 4 列。该数据由网络上的数据库导出,大约有 5000 行或更多行。输出文件为每个人在每种出行方式中按车辆创建行,然后按日期创建行。这意味着 2 个或更多不同的人可以在相同的小时内使用相同的车辆具有相同的旅行日期。我需要提取每个独特的日期/车辆/模式的小时数,以便它只计算一次,无论有多少人在里面。想想飞机的飞行时间,不管乘客如何。
  • 我不太明白为什么数据透视表会因为您的用户级别较低而退出...他们实际上不必对数据透视表执行任何操作,但是看看它提供的结果,确定吗?

标签: arrays excel unique


【解决方案1】:
  1. 使用 A、C 和 D 的独特组合创建一个表。假设有限或至少不变,但您也可以添加您可能拥有的每个组合并添加一个 IF(row="", "",x) 到公式中不显示。
  2. 您可以在第一个表中添加新列 (E),然后在新表中查找值或在新表中进行计算。

     E = SUMIFS(D$3:D$30,A$3:A$30,A3,C$3:C$30,C3,D$3:D$30,D3)
    E1 = {=INDEX(A$3:E$30,MATCH(G3&H3&I3,A$3:A$30&C$3:C$30&D$3:D$30,0),5)}
    E2 = SUMIFS(D$3:D$30,A$3:A$30,G3,C$3:C$30,H3,D$3:D$30,I3)
    

【讨论】:

    【解决方案2】:

    我最终创建了一个计算表,通过连接我想要匹配的字段来为每个航班创建一个唯一键,并通过搜索“VALID_PC”来消除重复项,该“VALID_PC”搜索了机组人员飞行中的最高级别.我在 K 和 L 列中使用的公式是:

    =IF(IFERROR(MATCH(H3,VALID_PC,0),"0"),A3&RIGHT(C3,5)&D3&E3,0)
    

    =IFERROR(IF(A2=0,0,IF(COUNTIF($K$2:K3,K3)>1,0,1)),0)
    

    这让我可以做一个简单的 {=SUM} 来判断 L 列在主页上是否有 1..

    Calculations Sheet

    我非常感谢你们为帮助我而付出的帮助和努力。

    【讨论】:

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