Преобразование текстовых результатов формулы массива в пригодный для использования формат

Когда результаты формулы массива являются числами, я нахожу, как правило, легко найти подходящий метод, чтобы свернуть массив в один результат. Однако, когда результаты формулы массива являются текстовыми, мне трудно манипулировать формулой так, чтобы обеспечить единый желаемый результат. Короче,Есть ли способ манипулирования массивом текстовых результатов, который я пропустил? Смотрите в нижней части этого вопроса окончательную желаемую формулу, которая не работает, и запрос решения.

* Изменить - после прочтения этого снова, я могу поочередно суммировать мой вопрос следующим образом: есть ли способ получить доступ к нескольким текстовым элементам из «результата массива формул», без индивидуального выбора (например, с помощью INDEX)?

Примеры работы формул массива, где массив результатов представляет собой числовые значения

(1) Пример 1: Предположим, столбец A, строки 1-500, представляет собой список идентификаторов продуктов в формате xyz123, а столбец B, строки 1-500, показывает общий объем продаж этого продукта. Если я хочу найти продажи для продукта с самыми высокими продажами, где последние 3 цифры идентификатора превышают 400, я мог бы использовать формулу массива примерно так (подтверждается комбинацией клавиш CTRL + SHIFT + ENTER вместо просто ENTER):

=MAX(IF(VALUE(RIGHT(A1:A500,3))>400,B1:B500,""))

(2) Пример 2 Теперь предположим, что столбец B содержит названия продуктов, а не продажи. Теперь я хочу просто вернуть имя, соответствующее критериям трех последних цифр идентификатора продукта, превышающего 400. Это можно сделать следующим образом:

=INDEX(B1:B500,MIN(IF(VALUE(RIGHT(A1:A500,3))>400,ROW(A1:A500),"")))

Здесь я провел небольшую манипуляцию, так что фактическая часть массива формулы [IF (RIGHT (A1: A500,3 ...]) возвращает результат значения [ROWs of ячейкиA1: A500, где последние 3 цифры выше 400], поэтому я могу использовать MIN, чтобы показать только первый ROW #, который соответствует, а затем я могу использовать этот свернутый результат в обычной функции INDEX.

(3) Пример 3 Последний пример см. В обсуждении аналогичного вопроса здесь [Более подробно, чем мой обобщенный пример ниже, способом, не имеющим непосредственного отношения к этому вопросу]:https://stackoverflow.com/a/31325935/5090027

Предположим теперь, что вам нужен список всех названий продуктов, где последние 3 цифры идентификатора продукта> 400. Насколько мне известно, это не может быть сделано в одной ячейке, это должно быть сделано путем помещения каждого отдельного результата в следующую ячейку. Следующая формула может быть помещена, например, в C1 и перетаскиваться на 10 строк, а затем отображать первые 10 наименований продуктов с идентификаторами продуктов, которые имеют последние 3 цифры> 400.

=INDEX($B$1:$B$500,SMALL(IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($A$1:$A$500),""),ROW()))

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

Теперь предположим, что я хочу взять результаты в примере 3 и выполнить некоторые манипуляции с ними. Например, предположим, что я хочу объединить их все в одну строку текста. Нижеследующее не работает, потому что concatenate не будет принимать массив результатов, подобных этому, в качестве приемлемых аргументов.

=CONCATENATE((IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($B$1:$B$500),"")))

Так что вопросКто-нибудь знает, как заставить эту последнюю формулу работать? Или, как заставить формулу работать, которая получает массив текстовых результатов и либо преобразует ее в «пригодный для использования диапазон» [чтобы ее можно было подключить к Concatenate выше], либо сразу же манипулирует текстовыми аргументами [такими как mid , поиск, замена и т. д.]? Прямо сейчас единственный способ, который я вижу, это использовать приведенный выше пример 3, а затем пойти дальше и сказать, например, Конкатенация (C1, C2, C3 ... C10).