Формула Excel не работает как формула условного форматирования - PullRequest
0 голосов
/ 18 июня 2020

Формула =(MONTH(INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7)) = MONTH( DATEVALUE( D$2 & "1" ) )) * (YEAR(INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7)) = $B$3) * (INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7)<> "") отлично работает в ячейке, но когда я пытаюсь использовать ее для условного форматирования, я получаю сообщение об ошибке «Проблема с этой формулой».

Моя цель - отформатировать ячейки если все следующие три утверждения верны:

  • MONTH(INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7)) = MONTH(DATEVALUE(D$2&"1"))
  • YEAR(INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7)) = $B$3
  • INDEX(Schedule, MATCH(D1, Schedule[[Full Name]:[Full Name]], 0), 7) <> ""

I пробовали использовать AND() и пробовали обычные ссылки вместо именованных диапазонов. Есть ли причина, по которой он будет работать в ячейке, но не в меню условного форматирования? Спасибо!

PS Я нахожусь на канале бета-тестирования инсайдера

РЕДАКТИРОВАТЬ: Решено @ScottCraner. Я использовал INDIRECT() для всех названных ссылок, и это сработало. Это конечный продукт: =(MONTH(INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)) = MONTH( DATEVALUE( D$2 & "1" ) )) * (YEAR(INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)) = $B$3) * (INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)<> "")

1 Ответ

0 голосов
/ 19 июня 2020

Это было решено @ScottCraner. Чтобы использовать именованную ссылку в условном форматировании, вы должны использовать INDIRECT()

Это конечный продукт: =(MONTH(INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)) = MONTH( DATEVALUE( D$2 & "1" ) )) * (YEAR(INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)) = $B$3) * (INDEX(INDIRECT("Schedule"), MATCH(D1, INDIRECT("Schedule[[Full Name]:[Full Name]]"), 0), 7)<> "")

...