Excels的MID()函数返回错误的“类型”数据?

时间:2018-07-11 21:38:00

标签: excel excel-formula

我遇到了MID()返回期望值的情况,但这似乎是错误的“类型”。例如,假设您有一个简单的字符表,其宽度以英寸为单位...

Char | Width
A    | 0.3465
B    | 0.3144
C    | 0.3478
...

在A1单元格中,有短语F1-40(我想要的序列号)。

在单元格C2中,我有公式=INDEX(Widths,MATCH(C1,Chars,0))

当我手动在C1中键入1时,C2中的公式将按预期显示该字符的宽度。

当我使用公式查找字符... =MID(A1,2,1) ... C1 显示正确的字符(仍为1),但是:

  • 如果字符是字母,则INDEX / MATCH可以正常工作。

  • 如果字符是数字,则INDEX / MATCH 失败(???)。

  • 如果字符是数字 ,我将MID()像这样包装:VALUE(MID()),则INDEX / MATCH可以正常工作。

  • 如果字符是字母 ,并且我用VALUE(MID())包裹了MID(),则INDEX / MATCH 失败

    < / li>

肯定有一种方法可以在不事先知道MID()是否返回数字或字母的情况下完成此操作吗?

谢谢

-B

1 个答案:

答案 0 :(得分:2)

MID返回文本。如果它看起来像一个数字,则是看起来像一个数字的文本,而不是实数。您不能使用看起来像数字的文本在实数列中查找匹配项。值得庆幸的是,有一个double unary或双减号可以将看起来像一个数字的文本隐藏为一个真实数字。

=--MID(A1,2,1)

但是,如果您尝试将真实文本(例如 abc )转换为数字,则会引发错误,因此必须应用IFERROR包装器以返回真实数字(如果可能)或文本

=iferror(--MID(A1,2,1), MID(A1,2,1))