Как вернуть список значений, разделенных запятыми, в одну ячейку Excel на основе условия из диапазона - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть таблица, которую мне нужно просмотреть и вернуть первую строку, где каждое соответствующее значение во второй строке равно «Да»

В моем случае это будет означать: «TA» и «RA»

+-----+----+-----+
| TA  | SA | RA  |
+-----+----+-----+
| Yes | No | Yes |
+-----+----+-----+

Можно ли объединить эти значения в одну ячейку Excel, разделенную запятыми?

, чтобы в одной ячейке содержалось "TA, RA"

Я использовал формулу, в которой все значения хранятся в массиве, а затем этот массив записывает в соседние ячейки все значения с помощью yes, а затем объединяет их с функцией замены.

=IFERROR(INDEX($A$1:$C$1,1,IFERROR(SMALL(IF($A1:$A3="Yes",COLUMN($A1:$A3)),ROW(1:1)), "")), "")

=SUBSTITUTE(TRIM(A1&" "&B1&" "&C1&" "&D1&" "&D1)," ",", ")

Это превратит:

+----+----+
| TA | RA |
+----+----+

в:

+--------+
| TA, RA |
+--------+

Существует ли более быстрый / понятный способ создания этой функции для возврата всехзначения, которые соответствуют «Да» в одну ячейку, разделенную запятыми?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Если у вас Excel 2016+, вы можете использовать функцию TEXTJOIN в формуле массива.

=TEXTJOIN(",",TRUE,IF(2:2="Yes",$1:$1,""))

Чтобы ввести / подтвердить формулу массива , удерживайте нажатой клавишу ctrl + shift при нажатии введите .Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, отображаемой в строке формул.

enter image description here

0 голосов
/ 27 ноября 2018

Вы против пользовательской функции?

Function LISTTHEYESES(valuerange As Range)

Dim cell As Range, resultstring As String

For Each cell In valuerange
    If cell.Offset(1, 0).Value = "Yes" Then
        If resultstring <> "" Then
            resultstring = resultstring & ", " & cell.Value
        Else
            resultstring = cell.Value
        End If
    End If
Next cell

LISTTHEYESES = resultstring

End Function

img1

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