Excel-сводные значения в одной ячейке (через запятую)

Excel-сводные значения в одной ячейке (через запятую)

у меня есть два столбца данных:

Supplier1|Product1
Supplier1|Product2
Supplier1|Product4
Supplier1|Product7
Supplier2|Product3
Supplier2|Product5

Я хочу "повернуть" вокруг поставщика и дать список продуктов в одной ячейке, разделенной запятыми, например

Supplier1|Product1,Product2,Product4,Product7
Supplier2|Product3,Product5

там около 1000 поставщиков , и 0 < products <= 10.

мое текущее решение включает в себя использование сводных таблиц, сохранение в CSV и т. д. и очень грязный. Решение без VBA было бы потрясающим.

17
задан Chris
22.11.2022 23:40 Количество просмотров материала 2604
Распечатать страницу

3 ответа

вот не-VBA, не-сводная таблица решение, которое использует только несколько формул.

  1. во-первых, я использовал "Text-to-columns", чтобы разделить ваши данные на этот разделитель "трубы" (вертикальная линия) на 2 столбца; столбец "поставщик" и столбец "продукт". Они идут в колонках A и B, соответственно. (В вашем сообщении говорится, что они объединены в одну колонку, поэтому я сначала разделил их. Тебе не придется этого делать.)

  2. в столбце C, который я назвал столбцом "конкатенация", я использовал эту формулу,начиная с ячейки C2 и копируя все вниз: =IF(A2=A1, C1&"," & B2, A2&"| " &B2)

  3. в столбце D, который я назвал как " SupplierChangesAtNextLine?"Я использовал эту формулу (начиная с D2 и копируя все вниз):=IF(A2 = A3,"","Changed")

  4. теперь вы можете фильтровать по столбцу D только "измененные" значения.

удачной охоты!

18
отвечен F106dart 2022-11-24 07:28
C1  C2  C3          C4
a   1   1   
a   2   2,1 
a   3   3,2,1   
a   5   5,3,2,1 
a   3   3,5,3,2,1   New
b   11  11  
b   13  13,11   
b   11  11,13,11    
b   14  14,11,13,11 New
c   22  22  
c   24  24,22       New
f   25  25  
f   11  11,25   
f   10  10,11,25    New
  1. в col3(означает C3) используйте формулу =IF (A2=A1,B2&","&C1,B2) начиная ячейку C2 и перетащите ее вниз.
  2. в C4 (означает column4) используйте formula =IF(A2=A3,"","changed") начиная ячейку D2 и перетащите ее вниз.
  3. Filter on New on C4 (означает col4), и вы получите желаемый результат.
1
отвечен Arghya Tarafdar 2022-11-24 09:45

добавить столбец C в качестве счетчика*: =COUNTIF (A$2:A$528, A2)

Добавьте D с шагом * =IF (A2=A1, D1+1, 1)

Добавить Е для сцепления*: =если(А1=А2,Е1 & ", " & Б2 , В2)

Добавить F, чтобы сохранить только последний метод concat : =если(и(С2=Д2 Е4<>""), Е4 ,"")

Примечание
добавить на ячейку 2 и потяните вниз (или дважды щелкните в правом углу), чтобы применить формулу для всех ячеек в столбце

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

0
отвечен Conete_Cristian 2022-11-24 12:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх