Объединение динамического числа совпадающих значений - PullRequest
0 голосов
/ 11 декабря 2019

В Excel, если у меня есть A1: E1 и A2: E2, содержащие совпадающие значения (т. Е. A1-A2), и я хочу объединить их вместе с другим стандартным текстом, есть ли простой способ сделать это? Обратите внимание, что не может быть 1-5 пар совпадающих значений.

Например:

enter image description here

приведет к "(еслиy == 4) * 50 + (если y == 6) * 50 + (если y == 9) * 50 "

И

enter image description here

приведет к "(если y == 2) * 50 + (если y == 3) * 25"

Я смотрю на concat, textjoin и другие текстовые функции, ноне придумал чистый способ сделать это. Я не хочу использовать VBA, а делаю это полностью в ячейках Excel. Спасибо!

1 Ответ

1 голос
/ 11 декабря 2019

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

Функция INDEX может вам помочь. Это также можно сделать с помощью INDIRECT, но, в отличие от INDEX, оно будет нестабильным и может значительно замедлить работу вашей электронной таблицы.

=TEXTJOIN("+",TRUE,"(if y==" & INDEX(1:1,1,1):INDEX(1:1,1,COUNTA(1:1)) & ")*" & INDEX(2:2,1,1):INDEX(2:2,1,COUNTA(1:1)))

или, чуть короче:

=TEXTJOIN("+",TRUE,"(if y==" & A1:INDEX(1:1,1,COUNTA(1:1)) & ")*" & A2:INDEX(2:2,1,COUNTA(1:1)))

enter image description here

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