И / ИЛИ Функции обратного порядка оценки - PullRequest
0 голосов
/ 13 февраля 2019

Я наткнулся на этот вопрос и заметил странный способ, которым Excel оценивает функции AND и OR.

Вопрос был о том, чтобы найти некоторые текстовые строки в ячейкес SEARCH.Исходная формула:

=IF(B1="","",IF(AND(ISNUMBER(SEARCH("minimum",B1)),ISNUMBER(SEARCH("maximum",B1)),ISNUMBER(SEARCH("range",B1)),NOT(ISNUMBER(SEARCH({"mean","median","mean absolute deviation","interquartile range"},B1)))),2,1))

, но интересная часть происходит в AND([...]SEARCH({"mean","median",[...]},B1)

Я не знал, что можно передать матричные аргументы в функцию поискабез определения его в качестве матрицы-функции ( Ctrl + Enter ), поэтому я решил попробовать.

Значение B1 равно test2 .

Вот формулы с выводами:

=SEARCH({"test1","test2"},B1) возвращает #VALUE! (Если значение в B1 равно test1, оно возвращает 1)
=ISNUMBER(SEARCH({"test1","test2"},B1)) возвращает FALSE
=OR(SEARCH({"test1","test2"},B1)) возвращает #VALUE!
=OR(ISNUMBER(SEARCH({"test1","test2"},B1))) возвращает TRUE

Как это?

Если я запускаю формулупошагово Excel оценивает аргументы в другом порядке:

  1. ISNUMBER(SEARCH({"test1","test2"},B1))
  2. ISNUMBER(SEARCH("test1",B1))
  3. ISNUMBER(SEARCH("test1","test2"))
  4. ISNUMBER(#VALUE!)
  5. результат: FALSE

НО:

Если он находится внутри OR или ANDфункция, она идет наоборот.

  1. OR(ISNUMBER(SEARCH({"test1","test2"},B1)))
  2. OR(ISNUMBER(SEARCH({"test1","test2"},"test2")))
  3. OR(ISNUMBER({"#VALUE!",1}))
  4. OR({FALSE,TRUE})
  5. результат: TRUE


Я не понимаю логики, стоящей за шагами, чего я не понимаю Поведение Excel в зависимости от того, находится ли формула внутри AND или OR.Может кто-нибудь объяснить это?

РЕДАКТИРОВАТЬ:

Кажется, вопрос недостаточно ясен.Мой вопрос:

Почему Excel оценивает аргументы функций (в данном случае SEARCH) внутри оператора AND или OR в обратном порядке, позволяя, например, передать матрицу-значения в них?

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