excel - 如何过滤掉数字和 .在 excel 中使用 Excel 公式从文本

标签 excel excel-formula

我有以下文本单元格值:

31.55c/kWh
49.66c/kWh
12.84 cents/kWh
19.24 cents/kWh
15.30 cents/day
15.30 cents/day
12 cents/kWh data
7 cents/kWh data
我已经编写了以下公式,但无法过滤所需的数据(起始单元格编号:B2):
{=IF(".",(LEFT(B2, MATCH(TRUE,ISERROR(VALUE(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))),0))+2),(LEFT(B2, MATCH(TRUE,ISERROR(VALUE(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1))),0))))}
谁能帮我解决这个问题!
预期结果:
31.55
49.66
12.84
19.24
15.3
15.3
12
7

最佳答案

这里有一个小技巧I've seen before在另一个网站上。你可以试试:
微软的 365:

=-LOOKUP(1,-LEFT(A1,SEQUENCE(LEN(A1)))
或者对于早期版本,向下拖动:
=-LOOKUP(1,-LEFT(A1,ROW($1:$100)))
或者,如果您对 100 个字符以下的长度不太有信心:
=-LOOKUP(1,-LEFT(A1,ROW(A$1:INDEX(A:A,LEN(A1)))))
旁注:我们也不再使用 volatile INDIRECT()到半 volatile INDEX() .

注:这适用于点是十进制分隔符的语言环境,添加嵌套的 SUBSTITUTE()当您的语言环境使用逗号时:
=-LOOKUP(1,-LEFT(SUBSTITUTE(A1,".",","),SEQUENCE(LEN(A1)))

简短说明:
这里的想法是,我们从字符串的左侧进行迭代,将长度数组馈送到 LEFT() 的第二个参数。 . LEFT() 前面的减号会将所有值转换为负数或将被忽略的错误。由于LOOKUP()无法从第一个参数中找到正数 1,它将返回结果数组中的下一个最小值。然后唯一要做的就是将负数变为正数,并在整个公式前面加上前导减号。由于LOOKUP()是一个本地 CSE 公式,您不必这样确认。

关于excel - 如何过滤掉数字和 .在 excel 中使用 Excel 公式从文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67347448/

相关文章:

excel - 使用small函数获取列表中N个最小值的行号

c# - Azure - 'Microsoft.ACE.OleDb.12.0' 提供程序未在本地计算机上注册

excel - 如何通过VBA在excel中创建具有特殊格式的字符串列表

vba - 根据另一个表中的内容删除一个表中的顶部行

excel - 在数组中搜索关键字,如果匹配,则从右列返回值

excel公式根据条件过滤范围

excel - 找出每周每种酒精单位最多的人与多少人同住

regex - Excel VBA 使用正则表达式查找和屏蔽 PAN 数据以实现 PCI DSS 合规性

excel - Range.Clear 上的 VBA 运行时错误 1004

excel - Excel 公式中的 HLOOKUP