我需要一个Excel公式(或VBA宏),该公式将允许我从字符串中提取值。字符串是单个单元格中由空格分隔的单词序列。我想要这个词(代表自行车的大小)是
- 47到60(或其他范围,可能是动态指定)之间的数字(可能是整数,但未指定),或者
- 字符串“ sm”,“ med”或“ lg”之一。
我希望在字符串中恰好有一个限定词,因此对它的任何合理的错误处理响应
- 没有限定词,或者
- 多个限定词
将是可以接受的。大小可以在字符串中的各个位置。例子:
Cervelo车队P2 105 5800 56 '15 数 56 是所希望的结果 Cervelo车队P2 105 54 6000 '15 数 54 是所希望的结果 Cervelo车队P3 105 5800 60 '15 数 60 是所希望的结果 Cervelo车队P2 105 5800 SM '15 的字符串 sm 是期望的结果
我只对整个单词感兴趣,因此58(“ 5800”的子字符串)不符合条件。
现在,我要剥离'15
并提取最后两位数字。但是,仅当自行车尺寸是倒数第二个值时,此方法才有效。但是,如上所述,在某些情况下,大小位于字符串中的其他位置。
如何在Excel中使用公式或VBA宏执行此操作?
1
您怎么知道兴趣数是56,而不是58?如果在这种情况下该字符串包含多个匹配项,该怎么办?我能想到的每个解决方案都会匹配它找到的符合条件的第一个实例。另外,您在同一问题中建议两个范围。是否打算将范围输入为变量,以便可以在不更改任何地方的公式的情况下进行更改?
—
fixer1234
谢谢你的帮助。每个记录只会有一个次数
—
卡罗尔
一个数字,范围在44-62之间。这些是自行车尺寸-因此,如果我可以定义此范围(44-62),则该公式将为每个记录在该范围内找到一个数字。感谢Carroll
—
carroll
那你可以澄清你的例子吗?如上所述,58和56都符合您的标准。如果人们不完全了解需求,将很难提供有用的答案。
—
fixer1234
“我……不确定自己做错了什么。”认真吗?由于您指定了多个值,因此我要求您澄清范围。您不仅在问题中留下了47-60和47-62,而且还在问题中添加了44-62(您之前在评论中提到过)。(此外,您今天在评论中输入的示例输入(和相应的期望结果)应该已经编辑到问题中,并且您编辑到问题中的注释也已经编辑(“我不确定下一步该怎么做。我也。不知道我做错了什么”)应该已经张贴在评论(或者根本没有)......(续)。
—
斯科特