仅使用公式检查 Excel 单元格文本是否为数字

glh*_*glh 18 worksheet-function microsoft-excel microsoft-excel-2010

我必须找出我的单元格文本是否是一个数值,并希望使用一种优雅的非 VBA方法,该方法不会妨碍其当前状态或值。

我发现该ISNUMBER()功能仅在单元格是数字格式或文本格式时没有空格时才有效,例如:

数字作为文本示例

对于我使用过的前三个=ISNUMBER(...),最后一次尝试是=ISNUMBER(TRIM(...)).

我使用的唯一不使用 VBA 的方法是使用文本到列覆盖我的当前值,然后使用该=ISNUMBER()函数。

注意:我精通 VBA 和 Excel,并且知道我可以创建用户定义的函数。但是我不想这样做,因为这会强加需要宏的工作簿或要安装的加载项,在某些情况下我可以并且已经这样做了。

我将不胜感激任何建议、想法(即使他们告诉我无法完成)或 VBA 解决方案(但是不会被标记为答案)。

Dav*_*ens 37

尝试将单元格值乘以 1,然后运行IsNumberTrim函数,例如:

=IsNumber(Trim(A1)*1)

  • +1 速度和一个好的 anwser。当事情在你面前但你看不到它们时,这很糟糕! (2认同)
  • @glh 有时只需要另一组眼睛就能看到你面前的东西。:) (2认同)

小智 5

假设您要转换的值在 A1 中,您可以使用以下公式:

=ISNUMBER(VALUE(TRIM(CLEAN(A1)))

这里的函数 clean 和 trim 正在删除空格和不可打印的字符。函数 value 将字符串转换为数字,通过转换后的字符串我们可以检查该值是否为数字。

  • +1。作为一个快速而肮脏的人,我喜欢 `=VALUE(A1)`,因为我的数据不需要 `CLEAN()`。我不知道 `VALUE()` 函数存在。只是要注意,`TRIM()` 没有任何作用,因为无论如何都会忽略空格。 (4认同)