Excel - значення зведення в одній комірці (як значення, розділене комами)


11

Excel - значення зведення в одній комірці (як значення, розділене комами)

У мене є два стовпці даних:

Постачальник1 | Продукт1
Постачальник1 | Продукт2
Постачальник1 | Продукт4
Постачальник1 | Продукт7
Постачальник2 | Продукт3
Постачальник2 | Продукт5

Я хочу «поворот» навколо Постачальника і дати список продуктів в одній осередку, розділеній комами, наприклад

Постачальник1 | Продукт1, Продукт2, Продукт4, Продукт7
Постачальник2 | Продукт3, Продукт5

Є близько 1000 постачальників і 0 <товари <= 10.

У моєму поточному вирішенні питання полягає у використанні зведених таблиць, економії як CSV тощо, і це дуже безладно. Рішення без VBA було б дивним.


Для цього вам потрібен SQL-запит. Чи можете ви експортувати до бази даних з деяким описом?
Rhys Gibson

Відповіді:


23

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

  1. По-перше, я використав "Текст до стовпців", щоб розділити ваші дані за цим роздільником "труба" (вертикальна лінія) на 2 стовпці; стовпчик "Постачальник" та стовпчик "Товар". Вони йдуть у стовпцях А та В відповідно. (У вашій публікації виявляється, що вони об'єднані в один стовпчик, тому я спершу розділив їх на частини. Вам цього не доведеться робити.)

  2. У стовпці C, яку я назвав стовпчиком "З'єднання", я використав цю формулу, починаючи з комірки С2 і копіюючи до кінця вниз: = IF (A2 = A1, C1 & "," & B2, A2 & "|" & B2)

  3. У стовпці D, яку я назвав "Постачальник зміниAtNextLine?" Я використав цю формулу (починаючи з D2 і копіюючи до кінця): = IF (A2 = A3, "", "Changed")

  4. Тепер ви можете мати можливість фільтрувати у стовпці D лише для "змінених" значень.

Гарного полювання!


1
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 (означає колонку4) використовуйте формулу = IF (A2 = A3, "", "змінився"), починаючи комірку D2 вперед, і перетягуйте її вниз.
  3. Фільтр на Нове на C4 (означає col4), і ви отримаєте ур бажаний результат.

0

Додати стовпчик C як лічильник *: = COUNTIF (A $ 2: A $ 528, A2)
Додати D як приріст * = IF (A2 = A1, D1 + 1, 1)
Додати E для об'єднання *: = IF (A1 = A2, E1 & "," & B2, B2)
Додайте F, щоб зберегти лише останнє значення : = ЯКЩО (І (C2 = D2, E4 <> ""), E4, "")
Примітка
додайте у комірці 2 та потягніть вниз (або двічі клацніть в правому куті) застосувати формулу для всіх комірок у стовпці

скопіюйте та вставте як значення на інший аркуш, сортуйте за спаданням за F, видаліть решту


занадто багато, щоб зробити ... Рішення F106дарт є більш елегантним.
ihightower
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.