【问题标题】:Excel - how to NOT a formula?Excel - 如何不是公式?
【发布时间】:2018-10-29 12:29:45
【问题描述】:

我正在测试一个返回布尔值(真或假)的 Excel 公式

这个很好用:

=OR(ISBLANK(B2),AND(LEN(B2)=12,ISNUMBER(SUMPRODUCT(FIND(MID(B2,ROW(INDIRECT("1:12")),1),"0123456789abcdefABCDEF")))))

现在我想反转结果。所以我用NOT() 包裹它。但 Excel 不会接受。为什么?谢谢!

=NOT(OR(ISBLANK(B2),AND(LEN(B2)=12,ISNUMBER(SUMPRODUCT(FIND(MID(B2,ROW(INDIRECT("1:12")),1),"0123456789abcdefABCDEF"))))))

【问题讨论】:

  • “[它] 不会接受它”是什么意思?有错误信息吗?
  • 我发现 isnumber(hex2dec(b2)) 是对 mac 的有效测试。

标签: excel excel-formula


【解决方案1】:

要验证 MAC 地址(或查找无效地址),请将地址拆分为 2 个十六进制,每个 6 并尝试进行 HEX2DEC 转换。

'validate
=OR(LEN(B2)=0, AND(LEN(B2)=12, IFERROR(HEX2DEC(LEFT(B2, 6))*HEX2DEC(RIGHT(B2, 6)), FALSE)))
=OR(LEN(B2)=0, AND(LEN(B2)=12, ISNUMBER(SUMPRODUCT(HEX2DEC(LEFT(B2, 6)), HEX2DEC(RIGHT(B2, 6))))))
'find non-valid
=NOT(OR(LEN(B2)=0, AND(LEN(B2)=12, IFERROR(HEX2DEC(LEFT(B2, 6))*HEX2DEC(RIGHT(B2, 6)), FALSE))))
=NOT(OR(LEN(B2)=0, AND(LEN(B2)=12, ISNUMBER(SUMPRODUCT(HEX2DEC(LEFT(B2, 6)), HEX2DEC(RIGHT(B2, 6)))))))

这基本上是您的原始公式所做的,但计算量较少。 tbh,我不确定为什么你的 NOT 包装器不起作用;它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多