在 Excel 中,如何编写一个公式来查看某个单元格区域(例如,A3 到 A16),检查其中是否有单独的字母,如果是,则将这些值替换为“0”?
替换和替代似乎仅在查看其他单元格时才有效(如果有意义的话)。
答案1
替换和替代似乎仅在查看其他单元格时才有效(如果有意义的话)。
是的。根据语义(即你如何看待它),公式(和函数)不会改变任何东西。它们会计算所在单元格的值。这可能取决于其他单元格的值(例如A3:A16
),但单元格不能有值和操纵该值的公式。
你可能想要做的是设置B3
为
=IF(AND(LEN(A3)=1, NOT(EXACT(UPPER(A3),LOWER(A3)))), 0, A3)
然后将其拖拽/填充至B16
。
解释:
LEN
检查我们正在查看的值(单元格)的长度( )A3
。如果是 1,则继续进行此测试,否则,“失败”(稍后详述)。- 将 中的值转换
A3
为大写和小写。如果A3
包含一些非字母字符,例如7
、&
或♥
,则大小写转换将不起作用。如果它是大写字母(例如Q
),LOWER(A3)
则返回其小写等价物(q
),反之亦然。因此,可以说,如果UPPER(A3)
≠LOWER(A3)
,则A3
包含一个字母。 - 不幸的是,在这种情况下,Excel 通常不区分大小写;如果您
Q
与进行比较q
,Excel 会说它们相等。因此,我们使用 函数EXACT()
来查看它们是否完全相同。 - 结合以上内容,如果
A3
是一个字符,并且该字符是一个字母,那么它就是(我相信)您要查找的。因此,我们将评估B3
下一个参数,即0
。如果它为空白或多个字符或不是字母(即测试失败),我们将显示其值(即 的值A3
)。
上面有一个小问题:如果A3
为空,长度为零,我们得到公式的最后一部分——部分A3
——但它会显示为0
。要解决这个问题,请执行
=IF(ISBLANK(A3), "", IF(AND(LEN(A3)=1, NOT(EXACT(UPPER(A3),LOWER(A3)))), 0, A3))
意思是,如果A3
为空白,则设置B3
为空白;否则,按照上面描述的公式继续进行。
A3:A16
如果您想永久更改中的值,只需将B3:B16
值复制并粘贴到中A3:A16
。