2014-09-29 6 views
-1

Прежде всего, я заранее извиняюсь за свой английский.Объедините данные, если они имеют один и тот же хост

Если у меня есть таблица любит это (2x5)

магазин A | orange

Магазин A | яблоко

Магазин A | mango

Магазин B | orange

Магазин B | яблоко

И я хочу, чтобы ссылаться на них в этом (с помощью формул) (2х2)

магазин A | апельсин, яблоко, манго

Магазин B | апельсин, яблоко

Спасибо

+0

Забудьте процитировать, извините –

ответ

0

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

Я предполагаю, что ваши данные в столбцах A и B.

Во-первых, я хотел бы создать два заголовка в D1 и E1, называется «Магазин A» и «B Магазин» Далее, я напечатал бы только 1 апостроф (символ) в D2 и E2. Этот номер не отображает, но он останавливает excel, помещая 0 в каждый пустой результат позже.

Тогда я бы поставил следующую формулу D3:

=IF($A1=D$1,D2&" "&$B1,D2) 

Что это делает следующее:

  1. Если колонка А для данной строки содержит один и тот же «Магазин» в строке ...
  2. Вставьте строку из полученного выше результата, поместите пробел после нее, а затем добавьте значение из столбца B
  3. Другое, только c выполните предыдущее значение результата из строки выше.

Я бы затем перетащить это через Е3, что для него становится:

=IF($A1=E$1,E2&" "&$B1,E2) 

Затем я могу перетащить эти две ячейки вниз (то есть, выделите D3 и E3 и перетащить их вниз).

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

orange apple mango | orange apple 

Скопируйте эти две строки и значение пасты их в другую клетку.Затем вы можете скопировать их снова и перенести их, если вы хотите, чтобы они друг над другом, а не бок о бок, т.е .:

orange apple mango 
orange apple 

Затем введите исходные столбцы (или скопировать D1 и E1 и переставлять их).

Обратите внимание, что строки в начале их будут иметь место в связи с «мы помещаем в первую ячейку. Если вы хотите обрезать это, просто используйте функцию TRIM() на результат, чтобы удалить начальные и конечные пробелы.

Надеюсь, это поможет. Как я уже сказал, это очень трудоемкий процесс, но я никогда не нашел хорошего способа конкатенации строк условно в excel, не погружаясь в написание VBA.

Примечание. Я не использую функцию CONCATENATE(), потому что она не вставляет пробел. Вы могли бы, если бы вы это сделали:

=IF($A1=D$1,CONCATENATE(D2," ",$B1),D2) 

Это работает так же, как просто слияние их, как и я.

Смежные вопросы