【问题标题】:Excel formula to find the index of ANY number within a cellExcel公式查找单元格内任何数字的索引
【发布时间】:2017-07-26 22:42:38
【问题描述】:

是否有 Excel 公式可以找到单元格内任意数字的索引?例如,该单元格可能含有“Tylenol 500mg”或“Tylenol PM 300mg”或“Advil 5.55mg”之类的物质。我需要知道文本在哪里结束,数字从哪里开始。

我希望避免编写宏,但如果没有任何现有的 Excel 公式,我会这样做。一如既往...谢谢!

【问题讨论】:

    标签: excel


    【解决方案1】:

    使用这个数组公式:

    =MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&"1234567890"))
    

    作为数组公式,退出编辑模式时需要使用 Ctrl-Shift-Enter 确认,而不是 Enter。

    处理根本没有数字的。

    =IF(ISERRROR(FIND({1,2,3,4,5,6,7,8,9,0},A1)),0,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&"1234567890")))
    

    或者你可以使用这个经常输入的公式:

    =AGGREGATE(15,6,FIND({1,2,3,4,5,6,7,8,9,0},A1),1)
    

    处理没有数字的:

    =IFERROR(AGGREGATE(15,6,FIND({1,2,3,4,5,6,7,8,9,0},A1),1),0)
    

    【讨论】:

    • 我试图这样做,=SEARCH({0,1,2,3,4,5,6,7,8,9,0},A1) 但这不起作用。你介意解释一下它是如何工作的吗?我一直在观察和思考,但无法真正理解 A1&"1234567890" 部分背后的想法。
    • 我将"1234567890" 添加到现有字符串中,以便在遍历数字时始终找到匹配项。如果那不存在并且不是所有数字都在字符串中,它将返回错误。如果包含在 MIN 中并将字符串添加到末尾,您的 Search 也可以工作:=MIN(SEARCH({1,2,3,4,5,6,7,8,9,0},A1&"1234567890")) 但我只在查找字母字符时使用 SEARCH,FIND 对类型更短,并且数字不区分大小写。 @布鲁斯韦恩
    • 现在你只需要在一个没有任何数字的单元格中测试它。
    • @ScottCraner - 不错的编辑,我会使用 IF 公式来完成,比较结果是否大于长度。但你的可能有点短。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    相关资源
    最近更新 更多