Получить значение MIN для каждого типа из несортированного набора данных с несколькими типами, используя формулу Google Sheets - PullRequest
1 голос
/ 08 марта 2019

В столбце A у меня есть набор данных, который начинается с идентификатора типа данных, за которым следует значение, разделенное точкой с запятой, например,

a_3;b_2;c_4;c_5;b_2;a_1;a_7;b_9

В столбце B у меня есть только данныеидентификаторы типов перечислены следующим образом: a; b; c

В столбце C я пытаюсь написать формулу, которая бы возвращала минимальное числовое значение для каждого из соответствующих типов данных в столбце B.

Таким образом, как указано выше, значения являются a_3; a_1; a_7, поэтому минимальное значение для 'a' равно "1".Аналогично минимум для «b» равен «2», а минимум для «c» - «4».

Таким образом, возвращаемое значение, отображаемое в Col C: 1; 2; 4

Я написал ARRAYFORMULA, который создает двумерный массив, в котором его первая строка содержит только значения «a», вторая строка имеет только значения «b», а третья строка имеет значения «c».например,

3 1 7
   2 2 9
      4 5

Но я понятия не имею, как я могу передать каждую отдельную строку в функцию MIN (которая сама должна быть внутри какой-то формулы массива, которая будет перебирать один массив вышеупомянутого массива)

Может быть, это ошибочный подход, и мне нужно думать о решении по-другому.

Подводя итог:

Col A                                Col B      Col C
a_3;b_2;c_4;c_5;b_2;a_1;a_7;b_9      a;b;c      1;2;4

Мне нужна формула длявыведите результат в пол. C.

Вот пример листа: https://docs.google.com/spreadsheets/d/1k1K7_msW8Jd_9-18zKdgdFKsSSYrRLtYjTLolQsAVjQ/edit#gid=0

1 Ответ

1 голос
/ 08 марта 2019
=TEXTJOIN(";",1,ARRAYFORMULA(IFERROR(VLOOKUP(TRANSPOSE(SPLIT(B2,";")),
 SORTN({REGEXEXTRACT(TRANSPOSE(SPLIT(A2,";")),"[A-Za-z]+"),
 REGEXEXTRACT(TRANSPOSE(SPLIT(A2,";")),"\d+")},COUNTA(TRANSPOSE(SPLIT(A2,";")))),2,0),)))

0

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