【问题标题】:How to use an index match function in an array with duplicate values如何在具有重复值的数组中使用索引匹配函数
【发布时间】:2017-10-24 15:30:37
【问题描述】:

我有一组数据以下列方式概述了土壤成分:

spreadhsheet screenshot

在标题中列出了基材类型,在下面的行中列出了每种类型的 0-100 百分比。

在 FP 列中,我有以下公式:

    =IFERROR(IF(AND((INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,1),FF3:FO3,0)))="",IF((LARGE(FF3:FO3,1))=100,"",INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,2),FF3:FO3,0)))=""),"",IF(OR((INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,1),FF3:FO3,0)))="",(IF((LARGE(FF3:FO3,1))=100,"",INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,2),FF3:FO3,0))))=""),CONCAT("The shoreline substrate is primarily composed of ",(INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,1),FF3:FO3,0))),(IF((LARGE(FF3:FO3,1))=100,"",INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,2),FF3:FO3,0)))),". "),CONCAT("The shoreline substrate is primarily composed of ",(INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,1),FF3:FO3,0)))," and ",(IF((LARGE(FF3:FO3,1))=100,"",INDEX($FF$1:$FO$1,MATCH(LARGE(FF3:FO3,2),FF3:FO3,0)))),". "))),"")

这意味着生成一个句子,内容为“海岸线底物主要由 [最常见的底物类型] 和 [第二常见的底物类型] 组成。”

*(仅当存在至少两种类型的基材时才会出现粗体部分)。

该公式完美运行,除了在 FP2 中可以看到的两种最常见基质的百分比相同的情况,其中句子显示“海岸线基质主要由沙子和沙子组成”而不是沙子和砾石。

关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: indexing excel-formula duplicates match


    【解决方案1】:

    使用 AGGREGATE 帮助选择下一个匹配的列:

     ="The shoreline substrate is primarily composed of " &INDEX($1:$1,AGGREGATE(15,6,COLUMN(FF2:FO2)/(FF2:FO2=LARGE(FF2:FO2,1)),1)) & IF(LARGE(FF2:FO2,1)<> 100," and " & INDEX($1:$1,AGGREGATE(15,6,COLUMN(FF2:FO2)/(FF2:FO2=LARGE(FF2:FO2,2)),COUNTIF(FF2:FO2,LARGE(FF2:FO2,1)))),"")
    

    【讨论】:

    • 谢谢!这完美地工作。诚然,我不知道它是如何工作的,但它很棒。
    • 学习聚合功能,非常强大。可能会更好,但仍然是我的主要 goto 功能之一。
    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2020-09-23
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多