Excel:在单元格内的多个数组中搜索值

时间:2012-11-21 10:31:52

标签: range excel-formula

我正在尝试在两个系统之间设置错误检查,并且需要比较不同格式的周数。一个系统以文本格式生成周数,例如“8-15, 18, 31-32”,另一个系统产生离散值。我怎样才能看出像16这样的值是否落在如上所述的多个范围内?

这是一个更大问题的一部分,我在一个系统中检查参考编号,日期,时间和周数(例如XXX111 Weds 9:00 9)与另一个系统的输出(例如XXX111 Wed 9:00 7:11, 13, 16, 52-63 or XXX111 Thu 9:00 5, 6, 11-16)。尽管有很多搜索,我已经用上面的位置撞墙,所以任何帮助都会非常感激。

如果可能,我宁愿不使用VBA。提前感谢您的智慧。

1 个答案:

答案 0 :(得分:0)

假设:

  1. 7:11应为7-11
  2. 63应为53
  3. 不属于范围的数字(例如18)不是问题
  4. 范围采用文字格式
  5. 我希望以下内容有助于或至少是“朝着正确方向迈出的一步”:

    A解析组件

    例如8-15, 18, 31-32,粘贴到单元格(比如A1)和数据>数据工具 - 列到文本>定界>下一个>检查逗号,空格和处理连续分隔符作为一个>下一个>根据需要选择列>为每个>选择文字完成

    可能更容易处理单个列,因此选择数据,复制>选择A2>选择性粘贴>转置>单击确定并删除Row1的内容。

    B将您的搜索值(16)添加到B1

    C将以下公式复制到B2并根据需要进行复制:

    =AND(B$1>=VALUE(LEFT($A2,SEARCH("-",$A2)-1)),B$1<=VALUE(RIGHT($A2,LEN($A2)-SEARCH("-",$A2)))))

    结果应该是TRUE,其中搜索值在离散范围的任何一个范围之内或之上:

    SO13491293 example

    公式使用连字符“识别”离散范围。 SEARCH查找它的位置(因为它的两侧可能有一个或两个字符)。 LEFT和RIGHT用于下限和上限(在RIGHT的情况下与LEN一起使用以解决上限是一个还是两个字符)。将文本转换为可等同于搜索值的内容需要VALUE。 AND是让进程在确定是否在“范围内”时考虑两个界限。

    “如果可能,我宁愿不使用VBA” - 但可能是明智的!

    然而,使用一些固定引用($)应该比使用标准公式更容易,因为可以通过以下方式查询给定的离散范围(可以附加在ColumnA中)以获取各种搜索值根据需要将公式复制到右侧/向下并输入(作为数字格式)进一步搜索Row1中的值。