Я схожу с ума по этому поводу, пытаясь понять, как создать динамический массив для создания меньшего списка из большего списка на основе критерия. Все это должно быть динамическим, потому что базовый список изменится. Два дня гуглил, но не нашел подходящего решения.
Я новичок в создании этих вещей. Пробовали ниже, но это не работает:
=IFERROR(INDEX('2.Data'!$L$3:$L$300;SMALL(IF('2.Data'!$L$3:$L$300 = "12378";ROW('2.Data'!$L$3:$L$300)-ROW('2.Data'!$L$3)+1);ROWS(B$2:B2)));"")
Пример:
Column A
1. 12345
2. 12345
3. 12378
4. 12345
5. 12378
6. 12345
Column B (result)
1. 12378
2. 12378
Column B должен иметь причудливую формулу, которая получает значение от column A на основе критерия = заканчивается на 78, без пустых ячеек между значениями.


С данными в столбце А, в B1 введите формула массива:
=IFERROR(INDEX($A$1:$A$26,SMALL(IF(RIGHT($A$1:$A$26,2) = "78",ROW($A$1:$A$26)),ROW(1:1))),"")
(в вашей версии Excel может потребоваться; вместо символа в формуле) и копируем вниз:
Формулы массива необходимо вводить с помощью Ctrl + Shift + Enter, а не только с ключом Enter. Если это сделано правильно, формула будет заключена в фигурные скобки на панели формул.
Вы можете избежать формул массива, если используете «вспомогательный» столбец.
Я придумал: = INDEX ('2.Data'! $ L $ 1: $ L $ 100; LARGE (IF (RIGHT ('2.Data'! $ L $ 1: $ L $ 100; 2) = "78 "; ROW ('2.D ata'! $ L $ 1: $ L $ 100); - 1); ROW ($ B $ 1: $ B $ 100)))
@jkpieterse Выглядит хорошо ... Я потратил так много-много часов, помогая пользователям «ускорить» их рабочие листы, что почти всегда буду использовать вспомогательный столбец, а не формулу массива.
@Erik Спасибо за отзыв.
@ Gary'sStudent Полностью согласен. Но мне нравятся головоломки, поэтому сложная задача с формулой массива для меня все равно что закончить головоломку Times :-)
Для такого рода проблем действительно требуется макрорешение, а не формула.