excel - Excel 搜索索引和修剪匹配的行
问题描述
我正在尝试搜索一行并仅返回该行中的部分文本
我正在使用这个公式
=IFERROR(IF(SEARCH("LineItem #",B16),INDEX($B19:$B34,MATCH("*"&"Thermal Requirement"&"*",$B19:$B34,0))),"")
它返回整行。有没有办法挑选出行的一部分。例如,只需U-Factor = 0.35
从行中拉出。
我知道我可以使用辅助列来做到这一点,但如果可能的话,我想在同一列中完成所有操作。
解决方案
如果您有支持动态数组的 Excel 版本,则可以使用 和 而不是公式的组合,Filter
仅FilterXML
过滤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 & """)]")
推荐阅读
- javascript - 在导出的函数(功能组件)React 中使用 redux 状态
- amazon-web-services - 从自定义指标添加 AWS CloudWatch 警报
- rust - 根据当前运行环境获取tokio运行时句柄的正确方法
- html - 如何使页脚居中
- java - 通过反射获取非静态方法中本地类的构造函数
- flutter - 需要帮助使用数据模型从 api 将列表存储在 sqflite 数据库中
- java - REST 请求 json Long 与原始 Long 不同
- kubernetes-helm - helm chart repo add 404 not found
- c# - C# WPF 窗口边距
- textbox - 文本框中只允许三个数值或字符