使用条件查找最长的字符串 - excel

时间:2018-02-22 18:59:32

标签: excel excel-formula

我有两列Item和ID - 请参阅Sample Table。我需要Excel中的公式来确定每个项目的最长时间(基于简单的ID长度)。

以下是我试图从示例表中提取的内容:

Item 1 ABCDABC
Item 2 XXXYZ

我尝试了索引匹配组合:

=INDEX("ID column",MATCH(MAX(LEN("ID column")),LEN("ID column"),0),MATCH("Item 1" , "Item Column",0))

用ctrl + shift +输入

结果如下:

Item 1 ABCDABC
Item 2 #REF!

非常感谢任何帮助。

Sample Table
Item        ID 
Item 1      ABC
Item 1      ABCD
Item 1      ABCDA
Item 1      ABCDAB
Item 1      ABCDABC
Item 2      X
Item 2      XX
Item 2      XXX
Item 2      XXXY
Item 2      XXXYZ

2 个答案:

答案 0 :(得分:3)

这将返回正确的索引:

=INDEX($B$2:$B$11,MATCH(MAX(INDEX(LEN($B$2:$B$11)*($A$2:$A$11=D3),)),INDEX(LEN($B$2:$B$11)*($A$2:$A$11=D3),),0))

enter image description here

答案 1 :(得分:2)

数据透视表非常适合这种情况,因为它可以处理关系。

  1. 将源数据转换为Excel表格
  2. enter image description here

    1. 向源数据添加新列,并使用LEN函数 返回每个项目的长度。您只需要将公式添加到顶行,Excel将使用表格符号将其复制下来:
    2. enter image description here

      1. 从该表中创建数据透视表,并将项目和ID放在ROWS中 窗格并将“长度”放入“值”窗格中:
      2. enter image description here

        1. 右键单击Length of PivotField总和中的一个单元格,然后单击此处 将聚合更改为MAX:
        2. enter image description here

          1. 点击ID过滤器下拉列表,然后选择值过滤器>前10名......
          2. enter image description here

            1. 在对话框中,将10中的10更改为1,然后单击“确定”:
            2. enter image description here

              <强> BING!

              enter image description here

              ...如果同一类别中的两个ID具有完全相同的长度,则数据透视表会显示两者:

              enter image description here