133

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

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

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

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

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

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

Есть идеи?

Спасибо!

9 ответов9

84

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

53

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

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

Например...

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

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

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

13

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

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

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

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

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

5

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

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

Сортировка

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

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

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

  • 4

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

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

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

    Gliederung> Группа

    1

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

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

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

    'group_values, some_number, empty_columnToHoldSubtotals
    '(stuff goes here)
    'cookie  1   empty
    'cookie  3   empty
    'cake    4   empty
    'hat     0   empty
    'hat     3   empty
    '...
    'stop
    
    Sub subtotal()
      ' define two strings and a subtotal counter thingy
      Dim thisOne, thatOne As String
      Dim subCount As Double
    
      ' seed the values
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset(1, 0)
      subCount = 0
    
      ' setup a loop that will go until it reaches a stop value
      While (ActiveCell.Value &lt&gt "stop")
    
        ' compares a cell value to the cell beneath it.
        If (thisOne = thatOne) Then
          ' if the cells are equal, the line count is added to the subcount
          subCount = subCount + ActiveCell.Offset(0, 1).Value
    
        Else
          ' if the cells are not equal, the subcount is written, and subtotal reset.
          ActiveCell.Offset(0, 2).Value = ActiveCell.Offset(0, 1).Value + subCount
          subCount = 0
    
        End If
    
        ' select the next cell down
        ActiveCell.Offset(1, 0).Select
    
        ' assign the values of the active cell and the one below it to the variables
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset(1, 0)
      Wend
    
    End Sub
    
    1

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

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

    -2

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

    -3

    В Excel 2013:

    -Кликните Данные

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

    Всё ещё ищете ответ? Посмотрите другие вопросы с метками .