我正在尝试在两个系统之间设置错误检查,并且需要比较不同格式的周数。一个系统以文本格式生成周数,例如“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
。提前感谢您的智慧。
答案 0 :(得分:0)
假设:
7:11
应为7-11
63
应为53
18
)不是问题我希望以下内容有助于或至少是“朝着正确方向迈出的一步”:
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
,其中搜索值在离散范围的任何一个范围之内或之上:
公式使用连字符“识别”离散范围。 SEARCH查找它的位置(因为它的两侧可能有一个或两个字符)。 LEFT和RIGHT用于下限和上限(在RIGHT的情况下与LEN一起使用以解决上限是一个还是两个字符)。将文本转换为可等同于搜索值的内容需要VALUE。 AND是让进程在确定是否在“范围内”时考虑两个界限。
“如果可能,我宁愿不使用VBA” - 但可能是明智的!
然而,使用一些固定引用($)应该比使用标准公式更容易,因为可以通过以下方式查询给定的离散范围(可以附加在ColumnA
中)以获取各种搜索值根据需要将公式复制到右侧/向下并输入(作为数字格式)进一步搜索Row1
中的值。