2

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

=J3&", "&K3&", "&L3&", "&M3

Когда все мои ячейки содержат текст, результат именно то, что я хочу.

Однако в некоторых случаях существуют ячейки без данных. На данный момент моя формула просто возвращает «,,,» если в ячейках нет данных. Есть ли способ переписать формулу, чтобы она игнорировала ячейки, которые не содержат никаких данных?

5 ответов5

3

С Office 365 Excel это становится проще.

Office 365 Excel представил TEXTJOIN()

=TEXTJOIN(", ",TRUE,J3:M3)

Если TRUE является вторым критерием, он автоматически пропускает все пропуски.

ПРИМЕЧАНИЕ: я знаю состояние OP Excel 2010, это для будущих читателей.

0

Скотт представляет изящное решение для новых версий Excel. Другие три решения (пока что) используют простые функции, которые работают в любой версии Excel. Однако запятые с разделителями на самом деле немного сложнее, чем эти формулы. Для этого в таком стиле решения требуется некоторая логика для каждой запятой.

Вот возможные комбинации существующих и отсутствующих значений:

В первом ряду нет пропущенных значений. Следующие четыре строки имеют одно пропущенное значение в каждой возможной позиции. Следующие шесть строк имеют два пропущенных значения в каждой возможной позиции. Затем четыре строки из трех пропущенных значений и, наконец, все пропущенные значения. Чтобы получить запятую там, где она нужна, и только там, где она нужна, вам нужна логика для каждой запятой.

Самый простой способ сделать это - связать запятую со значением "next". В каждой позиции запятой нет запятой, если перед ней не было значений (это разные случаи для каждой позиции). Если есть какое-либо предшествующее значение, вам нужна запятая, только если в следующей позиции есть значение. Таким образом, логика запятой выглядит так:

First comma:   =IF(J3="","",IF(K3="","",", "))        or  =IF(AND(J3<>"",K3<>""),", ","")
Second comma:  =IF(J3&K3="","",IF(L3="","",", "))     or  =IF(AND(J3&k3<>"",L3<>""),", ","")
Third comma:   =IF(J3&K3&L3="","",IF(M3="","",", "))  or  =IF(AND(J3&K3&L3<>"",M3<>""),", ","")

Я поместил каждую запятую в отдельный столбец, чтобы проиллюстрировать шаблон с различными комбинациями значений:

Решение объединяет значения (или пустые, если их нет) с запятыми. Для удобства чтения вот формула с запятой, вставленной в качестве ссылки на ячейку формулы:

=IF(J3="","",J3) &N3 &IF(K3="","",K3) &O3 &IF(L3="","",L3) &P3 &IF(M3="","",M3)

Подстановка формул запятых в формулу результата дает вам:

=IF(J3="","",J3) &IF(AND(J3<>"",K3<>""),", ","") &IF(K3="","",K3) &=IF(AND(J3&k3<>"",L3<>""),", ","") &IF(L3="","",L3) &=IF(AND(J3&K3&L3<>"",M3<>""),", ","") &IF(M3="","",M3)

0

Попробуй это:

=CONCATENATE(  IF(ISBLANK(J3),"",J3&", "),  IF(ISBLANK(K3),"",K3&", "),  IF(ISBLANK(L3),"",L3&", "),  IF(ISBLANK(M3),"",M3))

Функция Microsoft Excel ISBLANK может использоваться для проверки пустых или нулевых значений.

Здесь ISBLANK() используется для проверки, имеет ли ячейка значение. Если значения нет, в результат добавляется пустая строка "" . В противном случае добавляется значение ячейки вместе со строкой ", " .

0

Попробуйте добавить оператор IF() в каждую ячейку:

=IF(J3<>"";J3;"")&(IF(K3<>"";", "&K3;""))&(IF(L3<>"";", "&L3;""))&(IF(M3<>"";", "&M3;""))

Обратите внимание на небольшое изменение в формуле для первого оператора IF() .

-2

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

=IF(LEN(TRIM(J3))=0,",",J3)&IF(LEN(TRIM(K3))=0,",",K3)& IF(LEN(TRIM(L3))=0,",",L3)& IF(LEN(TRIM(M3))=0,"",M3)

Или вы можете использовать это также,

=TRIM(J3 & K3 &","& L3&","&M3)

NB. В приведенном выше примере ячейка J3 не является пустой ячейкой, и, пожалуйста, измените адрес ячейки в соответствии с вашими потребностями.

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