Excel formula 如何在数组中查找字符串并获取相应的头值?

Excel formula 如何在数组中查找字符串并获取相应的头值?,excel-formula,Excel Formula,我正在尝试填充特定字符串的一些结果。如果您看到下面的示例,我想搜索字符串“Test2”并收集相应的行和列标题。感谢快速的帮助 Student/Date 8/23 8/26 8/27 8/28 8/29 8/30 Dan Test1 Test3 Test4 Test6 Test3 Test1 Mike Test3 Test2 Test2 Test2 Test2 Test2 Br

我正在尝试填充特定字符串的一些结果。如果您看到下面的示例,我想搜索字符串“Test2”并收集相应的行和列标题。感谢快速的帮助

Student/Date    8/23    8/26    8/27    8/28    8/29    8/30
Dan             Test1   Test3   Test4   Test6   Test3   Test1
Mike            Test3   Test2   Test2   Test2   Test2   Test2
Brian           Test3   Test4   Test1   Test5   Test4   Test3
James           Test4   Test1   Test6   Test3   Test1   Test4
Chris           Test5   Test6   Test5   Test2   Test6   Test5
Paul            Test6   Test5   Test3   Test4   Test5   Test6

Search ResultStudent    Matching Dates              
Test2   Mike            8/26    8/27    8/28    8/29    8/30
如果上面的格式没有任何意义,这里是屏幕截图的链接

B10,通过控制+换档+输入确认

=SUM(IF(MMULT(IF($B$2:$G$7=$A13,1,0),TRANSPOSE(COLUMN($B$2:$G$7))^0)>0,1))
=SUM(IF(MMULT(IF(LEFT($B$2:$G$7,LEN($A13))=$A13,1,0),TRANSPOSE(COLUMN($B$2:$G$7))^0)>0,1))
B13,用CONTROL+SHIFT+ENTER确认,并复制下来

=IF(ROWS(B$13:B13)<=$B$10,INDEX($A$2:$A$7,SMALL(IF(MMULT(IF($B$2:$G$7=$A$13,1,0),TRANSPOSE(COLUMN($B$2:$G$7))^0)>0,ROW($A$2:$A$7)-ROW($A$2)+1),ROWS(B$13:B13))),"")
B13,通过CONTROL+SHIFT+ENTER确认,并向下复制:

=IF(ROWS(B$13:B13)<=$B$10,INDEX($A$2:$A$7,SMALL(IF(MMULT(IF(LEFT($B$2:$G$7,LEN($A$13))=$A$13,1,0),TRANSPOSE(COLUMN($B$2:$G$7))^0)>0,ROW($A$2:$A$7)-ROW($A$2)+1),ROWS(B$13:B13))),"")
=IF(行(B$13:B13)0,行($A$2:$A$7)-行($A$2)+1,行(B$13:B13)),“”)
C13,通过CONTROL+SHIFT+ENTER确认,跨下复制:

=IF($B13<>"",IFERROR(INDEX($B$1:$G$1,SMALL(IF(INDEX($B$2:$G$7,MATCH($B13,$A$2:$A$7,0),0)=$A$13,COLUMN($B$1:$G$1)-COLUMN($B$1)+1),COLUMNS($C13:C13))),""),"")
=IF($B13<>"",IFERROR(INDEX($B$1:$G$1,SMALL(IF(LEFT(INDEX($B$2:$G$7,MATCH($B13,$A$2:$A$7,0),0),LEN($A$13))=$A$13,COLUMN($B$1:$G$1)-COLUMN($B$1)+1),COLUMNS($C13:C13))),""),"")
=IF($B13)”,IFERROR(索引($B$1:$G$1,小)(IF(左(索引($B$2:$G$7,匹配($B13,$A$2:$A$7,0),0),LEN($A$13))=$A$13,列($B$1:$G$1)-列($B$1)+1),列($C13:C13)),“”)

对于基于公式的方法@Domenic已经提供了一些非常有用的东西

如果您愿意使用Excel 2010及更高版本中提供的Power Query,您可以按照以下步骤获取所需信息

请注意,我添加了两列样本数据(以黄色突出显示),用于测试目的

分组数据后,需要手动覆盖原始公式的公式为:

= Table.Group(#"Unpivoted Columns", {"Value", "Student/Date"}, {{"Dates", each Text.Combine([Attribute],";"), type text}})

如果你有任何问题,请告诉我。干杯:)

你好,多梅尼克,它像一个符咒一样工作!如果我在搜索字符串“Test2”时必须获得学生姓名和日期,您能分享新公式吗?Domenic,B10有没有办法给我部分匹配搜索字符串的单元格计数?假设我没有几个单元格说“Test2-科学,Test2-社会,Test2-经济学”。让我知道能不能做到。太棒了,多米尼克!这似乎是完美的工作。非常感谢!太好了,很乐意帮忙。干杯Terry,非常感谢你在这件事上花时间。你知道这个程序在谷歌表单中是否有效吗?我正在寻找一种既能在Excel中工作又能在Google工作表中工作的工具。@Dustin在使用Google工作表时,您不能正常运行power query,但您可以将源数据存储在Google工作表中,并将其加载到Excel工作簿中,然后在工作簿上执行查询。看看这个,了解一些诀窍。