如下例所示,我有一张包含一系列范围的表。
每个范围都有相关描述。我想查找属于其中一个范围但未明确列为范围端点的数字的描述。
例如208
:在下表中查找与该值相关的描述。
--------------------------------------
| Item | Location Description |
|------------------------------------|
| 1 | 100 to 103 agenda |
| 2 | 106 to 111 Notes of Meeting |
| 3 | 112 to 123 revision |
| 4 | 200 to 210 factor |
--------------------------------------
有没有办法做到这一点?
答案1
答案2
该方法
好的,根据您的评论,这是一种完全不同的方法,不涉及重建数据。这种方法使用几个辅助列来处理您的数据。这些可以隐藏,但我会在示例中显示它们,以便您了解其工作原理。
此示例基于以下假设:所有范围都涉及三位数。如果不是,我们需要以另一种方式解析范围端点,例如找到范围短语中的某个空格,然后计算范围值的位置。
我选择 B7 输入查找值,选择 C7 显示查找结果。辅助列是 E 和 F。
怎么运行的
在 E 列中,我们查看目标值是否在该行的范围内。如果是,则显示该行的描述。否则,单元格留空。因此,在 E 列中,只有找到目标的行才会显示描述。
F 列依次连接 E 列结果。由于这会将不匹配范围的空白与显示的任何描述连接起来,因此 F 列中的最后一个单元格将显示其出现的描述。C7 仅显示 F 列中的最后一个单元格。
公式
我的数据从第 2 行开始,因此 E2 包含:
=IF(AND(B$7>=--LEFT(B2,3),B$7<=--RIGHT(B2,3)),C2,"")
根据需要将其复制到行下。AND 将目标值 (B7) 与行范围的两端进行比较。它使用 LEFT 和 RIGHT 函数从字符串的每一端提取三位数字。双重否定强制 Excel 将这些数字字符串视为实际数字。末尾的空双引号是空值,如果测试为假,则单元格将为空白(引号之间应该没有任何内容)。
F2 包含:
=F1&E2
根据需要将其复制到该行。请注意,这依赖于 F1 为空。这会获取上方单元格中的所有内容,并将该行的 E 列中的结果连接起来。
结果单元格 C7 包含:
=F5
在此示例中,F5 是最后一行数据的结果。
如前所述,E 列和 F 列可以隐藏,因此我将操作分为两列,以便于直观查看。但是,E 列和 F 列可以合并,使用一个辅助列完成操作。例如,将 F 列设为辅助列,并将对 E 列单元格的引用替换为 E 列公式。因此,省略 E 列,F2 将是:
=F1&IF(AND(B$7>=--LEFT(B2,3),B$7<=--RIGHT(B2,3)),C2,"")
笔记
使用此解决方案,如果输入的目标数字未被定义范围之一覆盖,则在任何数据行中都找不到该数字,因此结果将为空白。