2016-08-06 3 views
0

жаль, если это уже было предложено, прочитал много ответов по этому поводу, (это то, который лучше всего описывает мою ситуацию - Excel - Match cells that contains exact match from list)Excel - найти точную строку из запятой

Я хотел Excel индексировать столбец, в котором ячейки содержат разделенные запятыми списки значений. В некоторых списках имеется только одна запись и, следовательно, нет запятой.

Я бы хотел, чтобы Excel нашел точное соответствие для заданной строки, например, если я ищу «C2», мне бы хотелось найти только «C2», а не «C22» или «C230». Он также должен найти "C2"

Я получил эту работу для отдельных клеток с этой формулой:

= IsNumber (FIND (" "& E $ 1 &", ";"" & $ B1 & ","))

Где «C2» содержится в ячейке E1, а список с разделителями-запятыми находится в ячейке B1.

Однако, если я попытаюсь включить это в формулу INDEX (я хотел бы, чтобы он возвращал соответствующее значение из ячейки в столбце A, где C2 существует), он снова находит все экземпляры «C2». Я написал формулу следующим образом:

= INDEX (A: A; ISNUMBER (FIND (" "& E $ 1 &", ";", "& B: B &",")))

Если у кого есть какие-то советы о том, как заставить это работать, я был бы очень благодарен!

Катрина

+0

Есть ли только один случай C4 в колонке B? –

+0

Да, каждое значение должно существовать только один раз во всем столбце разделенных запятыми списков – KLG

ответ

0

Используйте =ISNUMBER(FIND(" "&E$1&", "; " "&$B1&", ")) функции во вспомогательной колонне, скажем, F, и тянуть его вниз вдоль разделенных запятой значений в B.

Использование =INDEX(A:A;MATCH(TRUE;F:F;0)). Это найдет первое вхождение C2 или #NV в случаях, когда C2 не встречается.

Обратите внимание, что функция найдет «C2» и «C2», но не «C2».

+0

Большое спасибо, это действительно сработало, однако для каждого значения не обязательно иметь вспомогательный столбец, так как их сотни. Что мне нужно сделать, это объединить две формулы ... Я нашел это решение: [code] {= IFERROR (ADDRESS (БОЛЬШОЙ (ISNUMBER (ПОИСК ($ E1; $ B $ 1: $ B $ 5)) * ROW ($ B $ 1: $ B $ 5); COLUMNS ($ A: A)); 1); "")} [/ code] Однако мне нужно извлечь содержимое ячейки вместо формулы, просто возвращающей ячейку reference (что и делает ADDRESS). Пока мои попытки соединить эту формулу с INDEX и/или MATCH провалились ..Есть ли у вас какие-либо советы? – KLG

+0

Не могу поверить, можно только отредактировать комментарии в течение 5 минут после их публикации ... извините за неправильные теги [code], я не могу их удалить ... – KLG

0

=SUMPRODUCT(ISNUMBER(FIND(" "&E$1&", "; " "&B:B&", "))*A:A)

SUMPRODUCT прекрасно работает с массивами. Функция ISNUMBER возвращает массив false/0 и true/1, который затем умножается на соответствующее значение в столбце A, возвращая только это значение в A, где ISNUMBER является истинным. Если имеется несколько вхождений значения E1, возвращается сумма соответствующих значений в A.

Для лучшей производительности диапазоны в A и B должны быть ограничены диапазонами значений, например A1: A100 и B1: B100.

+0

Спасибо за ваш ответ, извините, что у меня нет был в состоянии ответить раньше! Я получил ошибку VALUE, когда я попробовал формулу SUMPRODUCT ... В ближайшие дни я рассмотрю это больше, спасибо за вашу помощь! – KLG

+0

Это то, что работает для меня: http://fs5.directupload.net/images/160812/zqwc9ieu.png –

+0

Спасибо, я сохранил вашу фотографию, я попробую еще раз и дам вам знать, что произойдет! – KLG

Смежные вопросы