Как я могу «сгруппировать» и суммировать столбец в Excel?


144

Я пытаюсь выяснить, как «сгруппировать» значения в электронной таблице Excel.

Приведенный ниже пример (это инвентарный лист, который я использую в моем ресторане :)

Образец таблицы

Справа от таблицы есть столбец «Стоимость проданных товаров».

Я хотел бы иметь возможность составить общий показатель COGS для каждой категории.

Это возможно в Excel? Более того, я бы хотел сделать это на отдельном листе, чтобы не повредить первый лист (на рисунке).

Есть идеи?

Спасибо!

Ответы:


89

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


50
Это не отвечает на вопрос
Железный Спаситель

1
В этом ответе есть несколько основных инструкций stackoverflow.com/a/15838994/74585
Мэтью Локк

1
Просто продолжайте прокручивать для ясного и краткого ответа: superuser.com/a/1204086/164123
Джордан Моррис

58

Вы также можете сделать это с помощью функции Промежуточный итог.

  1. Перейдите на вкладку «Данные» на панели инструментов Excel.
  2. Нажмите кнопку Сортировка и сортируйте по столбцу вашей категории
  3. Нажмите кнопку «Промежуточный итог» и заполните соответствующее диалоговое окно, затем нажмите «ОК».

Например...

При каждом изменении в: Категория

Использовать функцию: сумма

Добавьте промежуточный итог к: Стоимость проданных товаров


3
Где кнопка промежуточных итогов? Не могли бы вы добавить скриншот?
Мэтью Локк


15

Я предполагаю, что вы ищете общий COGS для учетной записи, например, бакалейной, например, за неделю 1.

sumifэто самый простой способ получить эти данные. пример взят из вашей картинки:

=sumif(d2:d?,"grocery",j2:j?)

Я поставил знаки вопроса, так как не вижу весь лист. Вы должны выбрать весь столбец D, где у вас есть данные учетной записи. D2 через D ?, То же самое с недельным столбцом использования J2 через J ?.

Формула будет искать в столбце D текстовый продукт, если он присутствует, он добавит в столбец J ячейки, соответствующие столбцам D, в которых есть слово бакалейный. (или любой другой текст, который вы вставите в формулу для поиска)


Это отличное и очень простое решение. Сводные таблицы излишни для многих нужд, подобных этой.
Т. Брайан Джонс

5

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

Он дает то, что вы ищете, не изменяя всю структуру ваших данных, как это сделала бы операция Pivot.

Сортировка

  • Перейдите на вкладку « Данные » (или нажмите Alt-A на клавиатуре).
  • Нажмите Сортировка (или нажмите S на клавиатуре)
  • Щелкните стрелку раскрывающегося списка рядом с «Сортировать по» в главной области всплывающего окна.
  • Выберите «Категория», так как это то, что вы хотите сгруппировать по.
  • Нажмите ОК!

Промежуточный итог

  • Перейдите на вкладку « Данные » (или нажмите Alt-A на клавиатуре).
  • Нажмите значок промежуточного итога (или нажмите B на клавиатуре)
  • Теперь, когда ваши данные отсортированы, прочитайте и заполните всплывающее окно «Итого», как будто вы читаете на естественном английском языке :
           При каждом изменении в
              Категория (нажмите стрелку выпадающего списка и выберите это)
           Использовать функцию
              Сумма (нажмите стрелку выпадающего списка и выберите это)
           Добавить промежуточный итог к
              Стоимость проданных товаров (выберите столбцы, которые вы хотите подвести для отдельных категорий)

       Click OK!
    


  • 4

    В Excel 2013 будет опция «группировка».

    1. Выберите свой стол.
    2. Перейдите на вкладку «Данные».
    3. Нажмите Структура> Группировка.

    Смотрите скриншот ниже, к сожалению, это немецкий - но значки помогут вам его найти.

    Gliederung> Группа


    4

    Чтобы сделать это с помощью сводной таблицы :

    1. Выберите все данные (включая метки столбцов)
    2. Вставить> Сводная таблица
    3. Перетащите поле в измерение (строку или столбец) сводной таблицы, чтобы сгруппировать его
    4. Перетащите поле в область «значений», чтобы вычислить метрику об этом; в этом случае сум.

    введите описание изображения здесь


    Это должен быть принятый ответ
    Джордан Моррис

    1
    Excel v.16.28 имеет Data/ Summarize with PivotTableвместо «Вставить».
    угорь ghEEz

    1

    Я делаю это все время с VBA. Я почти уверен, что использовал тот же метод, начиная с Office 95 ', с небольшими изменениями, внесенными для размещения столбцов. Это может быть сделано с меньшим количеством строк, если вы не определяете переменные. Это может быть сделано быстрее, если у вас есть много строк для прохождения или больше вещей, с которыми вам нужно определить свою группу.

    Я сталкивался с ситуациями, когда «группа» основана на 2-5 ячейках. Этот пример рассматривает только один столбец, но его можно легко развернуть, если кто-то найдет время поиграть с ним.

    Это предполагает 3 столбца, и вы должны сортировать по столбцу group_values. Перед запуском макроса выберите первую ячейку, которую вы хотите сравнить, в столбце group_values.

    'group_values, some_number, empty_columnToHoldSubtotals
    '(материал идет сюда)
    'cookie 1 пусто
    печенье 3 пусто
    Торт 4 пустой
    'шляпа 0 пусто
    шляпа 3 пусто
    »...
    'стоп
    
    Подытог ()
      'определить две строки и промежуточный счетчик
      Dim thisOne, thatOne As String
      Dim subCount As Double
    
      посеять ценности
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset (1, 0)
      subCount = 0
    
      'настроить цикл, который будет идти, пока не достигнет значения остановки
      Пока (ActiveCell.Value <> «стоп»)
    
        'сравнивает значение ячейки с ячейкой под ней.
        Если (thisOne = thatOne) Тогда
          'если ячейки равны, счетчик строк добавляется к субсчету
          subCount = subCount + ActiveCell.Offset (0, 1). Значение
    
        еще
          'если ячейки не равны, подсчет записывается, и промежуточный итог сбрасывается.
          ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
          subCount = 0
    
        End If
    
        выберите следующую ячейку вниз
        ActiveCell.Offset (1, 0). Выбрать
    
        'присваивать переменным значения активной ячейки и ячейки под ней
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset (1, 0)
      венед
    
    End Sub
    

    -2

    1) Выберите диапазон данных.
    2) Скопировать диапазон в буфер обмена.
    3) Открыть новую базу данных Access.
    4) Создайте новую таблицу или пасту.
    5) Создать представление, SQL View.
    6) Создайте запрос "ВЫБЕРИТЕ ячейку, СУММА (данные) КАК ОБЩАЯ ОТ ЯЧЕЙКИ ГРУППЫ BY BY"


    Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
    Licensed under cc by-sa 3.0 with attribution required.