Excel – значения pivot в одной ячейке (в виде значения, разделенного запятыми)

Excel – значения pivot в одной ячейке (в виде значения, разделенного запятыми)

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

  • Как получить или скопировать фоновое изображение в Excel?
  • Заполните в Excel, но на основе нескольких значений
  • Сводная таблица - суммирование нескольких независимых столбцов данных
  • Сделать ссылку в двух таблицах Excel, чтобы автоматизировать вычисление
  • Остановить Excel, распознающий тире
  • Подсчитать уникальные имена в диапазоне столбцов Excel
  •   Supplier1 | Product1
     Supplier1 | Product2
     Supplier1 | product4
     Supplier1 | Product7
     Supplier2 | Product3
     Supplier2 | Product5 

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

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

    Около 1000 поставщиков и 0 <продукты <= 10.

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

  • Курсор и выбор невидимы, когда фокус теряется
  • Excel - отобразить текст, отличный от фактического значения?
  • Слияние таблиц в Excel
  • Сводная таблица - суммирование нескольких независимых столбцов данных
  • Excel: если оператор с # N / A
  • Диспетчер сценариев Excel
  • 3 Solutions collect form web for “Excel – значения pivot в одной ячейке (в виде значения, разделенного запятыми)”

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

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

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

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

    4. Теперь вы можете фильтровать столбец D только для «измененных» значений.

    Хорошая охота!

    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. Фильтр по New на C4 (означает col4), и вы получите желаемый результат.

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

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

    Давайте будем гением компьютера.