Excel - как не формула? - PullRequest
0 голосов
/ 19 мая 2018

Я тестирую формулу Excel, которая возвращает Boolean (True или False)

Эта работает отлично:

=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"))))))

1 Ответ

0 голосов
/ 19 мая 2018

Чтобы проверить 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)))))))

По сути, это то, что делает ваша первоначальная формула, но сменьше расчетная нагрузка.ТБХ, я не уверен, почему ваш НЕ обертка не работает;это для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...