Файл CSV - объединить заголовок, если значение = ДА в другой ячейке - Libreoffice / Excel / Googledocs

359
riseagainst

У меня есть файл с текстом, разделенным на ячейки, которые я хочу сгруппировать в другую ячейку. Клетки являются:

enter image description here

A, B, C и D - это то, что у меня есть. Если в каждом столбце указано значение «Да», я бы хотел, чтобы в столбце « Результат» отображался заголовок каждого «Да». Итак, для первого, например, Blue COMMA Green COMMA Yellow DOT Этого можно достичь? Если так, то как? Спасибо.

Изменить: 2016 офис без подписки 365 не имеет textjoin. Ищем ответ LibreOffice / Googledocs.

1
для этого нет встроенной формулы, однако уже есть ответ на ваш вопрос по stackoverflow: https://stackoverflow.com/questions/22639868/vba-user-defined-function-for-concatenate-if-by- строки Máté Juhász 5 лет назад 0

1 ответ на вопрос

2
PeterH

Вы можете использовать TEXTJOINдля этого, если у вас есть Excel 2016 и подписчик 365.

В F2 используйте ниже и перетащите вниз:

{=TEXTJOIN(", ",,IF(A2:D2="yes",$A$1:$D$1,""))} 

Введите это как массив, используя Ctrl+ Shift+Enter

Если у вас нет подписки 365, вы можете использовать длинную сложную инструкцию IF, снова введите F2 и перетащите вниз:

=SUBSTITUTE(TRIM(IF(A2="yes",$A$1,"")&" "&IF(B2="yes",$B$1,"")&" "&IF(C2="yes",$C$1,"")&" "&IF(D2="yes",$D$1,""))," ",", ")

Для использования в Документах Google:

=ArrayFormula(TEXTJOIN(", ",TRUE,IF(A2:D2="Yes",A$1:D$1,))&".") 
Ваш ответ, кажется, путь. У меня есть офис 2016, однако у меня нет функции объединения текста. Есть ли способ добавить это? Я нашел сообщение о том, что только 365 подписчиков получают его ... riseagainst 5 лет назад 0
Кажется, у LibreOffice это может быть, я попробую. riseagainst 5 лет назад 0
Я не знал, что TEXTJOIN был доступен только для 365 подписчиков, это довольно глупо для MS. У меня есть обновление для моего ответа, который вы можете использовать в любом случае @riseagainst PeterH 5 лет назад 0
Это также сработало бы, но мой пример очень упрощен, у меня есть более 40 столбцов. Я думаю, что libreoffice будет работать, я просто не могу понять правильный синтаксис. riseagainst 5 лет назад 0
Вы проверяли это на Excel? Я не могу заставить его работать на libreoffice или в документах Google. riseagainst 5 лет назад 0
если вы хотите обновить свой ответ, включив его в Google docs, я отмечу его как принятый, это работает: = ArrayFormula (TEXTJOIN (",", TRUE, IF (A2: D2 = "Да", A $ 1: D) $ 1)) & "") riseagainst 5 лет назад 0
@riseagainst добавил это PeterH 5 лет назад 0