首页 > 解决方案 > Excel 搜索索引和修剪匹配的行

问题描述

我正在尝试搜索一行并仅返回该行中的部分文本

在此处输入图像描述

我正在使用这个公式

=IFERROR(IF(SEARCH("LineItem #",B16),INDEX($B19:$B34,MATCH("*"&"Thermal Requirement"&"*",$B19:$B34,0))),"")

它返回整行。有没有办法挑选出行的一部分。例如,只需U-Factor = 0.35从行中拉出。

我知道我可以使用辅助列来做到这一点,但如果可能的话,我想在同一列中完成所有操作。

标签: excelexcel-formula

解决方案


如果您有支持动态数组的 Excel 版本,则可以使用 和 而不是公式的组合,FilterFilterXML过滤Index掉 U 因子位

公式E17(溢出E17:E18到此示例数据)

=FILTERXML("<h><a>"&SUBSTITUTE(FILTER(B19:B30,LEFT(B19:B30,19)="Thermal Requirement"),",","</a><a>")&"</a></h>","//a[contains(text(),""U-Factor"")]")```

或将搜索词放在单独的单元格中

=FILTERXML("<h><a>"&SUBSTITUTE(FILTER(B19:B30,LEFT(B19:B30,LEN(E9))=E9),",","</a><a>")&"</a></h>","//a[contains(text(),""" & E10 & """)]")

在此处输入图像描述

请注意,如果数据范围内的“Thermal Requirement”行超过 1 个,则会溢出


它是如何工作的

破碎完成并参考下图:

内部Filter返回仅包含“热需求”行的溢出范围

=FILTER(B19:B30,LEFT(B19:B30,LEN(E9))=E9)

然后将此溢出范围格式化为 XML

="<h><a>"&SUBSTITUTE(G17#,",","</a><a>")&"</a></h>"

然后过滤 XML 以返回“U-Factor”节点

=FILTERXML(H17#,"//a[contains(text(),""" & E10 & """)]")

在此处输入图像描述


推荐阅读