Конденсировать большую формулу - PullRequest
0 голосов
/ 07 мая 2018

Мне было интересно, сможет ли кто-нибудь просветить меня, чтобы сократить или сократить эту формулу:

=IF(ISNUMBER(SEARCH("Kirkintilloch",B2)),"BRN01",IF(ISNUMBER(SEARCH("Tweacher",B2)),"BRN01",IF(ISNUMBER(SEARCH("Lenzie",B2)),"BRN01",IF(ISNUMBER(SEARCH("Bishopbrigg",B2)),"BRN03",IF(ISNUMBER(SEARCH("Torrance",B2)),"BRN03",IF(ISNUMBER(SEARCH("Bearsden",B2)),"BRN04",IF(ISNUMBER(SEARCH("Milngavie",B2)),"BRN04")))))))

В столбце B будет указан адрес, который будет из одного из этих семи городов. Причина, по которой я не сделал IF тогда Lookup, заключалась в том, что результат, который я хочу вернуть, не является уникальным, т.е. Kirkintilloch и Torrance оба должны возвращать результат BRN01.

Если это невозможно упростить, не беспокойтесь. Это просто спасло бы меня от большого количества работы с большим количеством возможных результатов.

1 Ответ

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

Это формула массива - подтвердите ее с помощью Ctrl + Shift + Введите , находясь в строке формул:

=INDEX(Towns,SMALL(IF(ISNUMBER(SEARCH(INDEX(Towns,0,2),B2)),INDEX(Towns,0,1)),1),3)

Разбить это:

Сначала вам нужно создать именованный диапазон (я назвал мои "Города"), который содержит массив индекса, название города и желаемый результат "BRN**" (вы можете сделать это простым диапазоном и просто ссылаться на него, но Я ввел фактический массив, выбрав диапазон в формуле, выделив его и используя F9 для вычисления)

enter image description here

Теперь, когда у вас есть этот массив, я использую Index, предоставляющий 0 для аргумента строки, чтобы вернуть все строки, чтобы я мог приравнивать только к одному столбцу за раз.

IF(ISNUMBER(SEARCH(INDEX(Towns,0,2),B2)),INDEX(Towns,0,1))

Поскольку это формула массива, каждая строка оценивается индивидуально, а результаты (первый столбец при совпадении - индекс массива) возвращаются в виде массива, например: {FALSE;FALSE;3;FALSE;FALSE;FALSE;FALSE}

Затем я использую SMALL(), чтобы поймать наименьшее число или первое совпадение, чтобы подать другой индекс для третьего столбца.

enter image description here

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