2

我正在尝试在两个系统之间设置错误检查,并且需要比较不同格式的周数。一个系统以文本格式生成周数,例如“ 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如果可能,我宁愿不使用。提前感谢您的智慧。

4

1 回答 1

0

假定:

  1. 7:11应该7-11
  2. 63应该53
  3. 不属于范围的数字(例如18)不是问题
  4. 范围为文本格式

我希望以下内容有所帮助,或者至少是“朝着正确方向迈出的一步”:

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 示例

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

“如果可能,我宁愿不使用 VBA”——但可能是可取的!

但是,使用一些固定引用 ($) 应该比使用标准公式更容易,因为ColumnA可以通过将公式复制到右侧/根据需要向下并输入(作为数字格式)在Row1.

于 2013-03-07T19:26:08.310 回答