【问题标题】:Excel Ignoring If Statement During Index/Match/If/Large CommandExcel 在索引/匹配/If/Large 命令期间忽略 If 语句
【发布时间】:2018-03-08 01:01:34
【问题描述】:

我正在尝试创建一个图表,从第二个 Excel 工作表中查找满足特定条件的第一个(然后是第二个、第三个、第四个等)最大条目的名称(通过总销售额)。 (即,如果你愿意的话,我想找到好的“苹果”并在“欧洲”销售的最大销售价值,并显示这个最大销售金额的客户。)

我创建了一些代码,为我提供了与工作表上最大值相对应的名称(非常好!)。但是,此名称不符合我的 if 语句中的条件。

示例代码:=INDEX('Sheet1'!B:B,MATCH(1,INDEX(('Sheet1'!V:V=LARGE(IF(AND('2. Sheet1'!E2:E1000="Apple", 'Sheet1'!W2:W1000="Europe"), 'Sheet1'!V:V, ""), ROWS(C$1:C1)))*(COUNTIF(C$1:C1,'Sheet1'!B:B)=0),),0))

B 是客户名称列,V 是总销售额列,E 是显示所售商品名称的列,W 是地理区域名称,C 是列(在新工作表),其中客户姓名将被重复。

我想看到的是在欧洲购买苹果最多的客户......但我却获得了最大的销量。

更奇怪的是,如果“apples”和“Europe”没有出现在 Sheet1 的第一行,我会得到 #N/A。 (但是,如果这些包含在顶行中,则不会发生这种情况。)

有人对如何解决有任何想法吗?

【问题讨论】:

    标签: excel if-statement excel-formula match multiple-select


    【解决方案1】:

    在以下示例数据图像中,AB2:AC2 中的公式为:

    =AGGREGATE(14, 6, (V$2:V$21)/((W$2:W$21=AA2)*(E$2:E$21=Z2)), COUNTIFS(Z$2:Z2, Z2, AA$2:AA2, AA2))
    =INDEX(B:B, AGGREGATE(15, 6, ROW($2:$21)/((E$2:E$21=Z2)*(W$2:W$21=AA2)*(V$2:V$21=AB2)), COUNTIFS(Z$2:Z2, Z2, AA$2:AA2, AA2, AB$2:AB2, AB2)))
    

    如果您需要在一个公式中完成所有操作,请将 AB2 中的公式 (sans =) 替换为来自 AC2 的公式中出现的每个 AB2。

    根据需要填写。

    【讨论】:

    • 是的,它正在工作!非常感谢您的帮助! (我最终没有合并它,因为通过设置隐藏列来运行计算更容易排除故障,但很高兴我得到了这个工作。再次感谢您!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多