2

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

Я использовал эту формулу:

=P2 & ", " & Q2 & ", " & R2 & ", " & AD2 & ", " & AE2 & ", " & AF2

Но только две ячейки имеют электронные письма, поэтому результат таков:

, name1@domain.com, , , name2@domain.com,

Как это исправить? (Удалите лишние запятые; обходите пустые ячейки; другое решение.)

2 ответа2

1

Вариант 1: Сначала добавляются вспомогательные столбцы для каждого возможного столбца почтового адреса, используйте формулу IF для добавления запятой к каждой непустой строке, в противном случае возвращается пустая строка. Например, формула вспомогательного столбца для P2 имеет вид =IF(P2<>"", P2&",", "") . Затем объединяет вышеупомянутый вспомогательный столбец.

Вариант 2: объединяет всю вашу строку, как вы делали раньше, затем подставляет несколько запятых в одно регулярное выражение с запятой, как это предлагается на https://stackoverflow.com/questions/26280008/excel-how-do-i-replace-text-by -Использование-а-подстановочные

1

Вы можете использовать функции IF следующим образом:

=IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,"")

Это может иметь дополнительную запятую в конце, которую можно удалить с помощью следующего:

=IF(RIGHT(string,1)=",",LEFT(string,LEN(string)-1),string)

где string - это вывод предыдущей формулы (или любой другой строки).

Свернутое в одну уродливую формулу, это будет выглядеть так:

=IF(RIGHT(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""),1)=",",LEFT(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""),LEN(IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""))-1),IF(P2<>"",P2&", ","") & IF(Q2<>"",Q2&", ","") & IF(R2<>"",R2&", ","") & IF(AD2<>"",AD2&", ","") & IF(AE2<>"",AE2&", ","") & IF(AF2<>"",AF2,""))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .