Вычисление частичных значений для использования в взвешенном среднем

У меня есть таблица со следующей информацией:

  • столбец A содержит список курсов (например, курс 1, курс 2 и т. д.)
  • столбец B содержит количество кредитов, доступных для каждого курса
  • столбец C содержит оценку, выраженную целым числом (например, 72, 63 и т. д.)

эта информация затем сортируется по классам, от Высшего к низшему.

С этой информацией мне нужно сгруппировать курсы в 4 равные группы, на основе общего количества доступных кредитов определите средневзвешенное значение для каждой группы. Кредиты, однако, не всегда ломаются равномерно, то есть некоторая часть курса может засчитываться в первую средневзвешенную, а остальная часть курса - во вторую средневзвешенную. Например, у меня может быть:

        Credits Grade
Course 1    3   75
Course 2    2   75
Course 3    3   72
Course 4    3   72
Course 5    3   72
Course 6    4   70
Course 7    4   67
Course 8    3   67
Course 9    4   63

Total credits: 29
1/4 of total credits: 7.25

поэтому первый средневзвешенная бы использовать все 3 кредита за курс 1, Полный 2 кредита курс 2, и 2,25 из 3 кредитов для Конечно, 3. Оставшиеся 0.75 кредиты конечно 3 будет засчитываться второй средневзвешенной.

Я могу вычислить, где перерывы/частичные кредиты идут вручную (как на связанном изображении ниже), так как математика не сложна. Тем не менее, я хотел бы знать, есть ли функция (или серия функций), которая может использоваться для автоматизации создания разделов 4, чтобы затем можно было выполнять функции взвешивания и среднего значения. Ближе всего я пришел к ответу, чтобы положить следующая формула в D3: = IF (SUM ($B$2:B3) <B12,B3,B3-(SUM ($B$2:B3)-$B$12)) и копирование до тех пор, пока кредиты не станут отрицательными. Затем я перенес остаток в F, скопировал и отредактировал формулу для этого столбца и так далее. Очень трудоемкий и склонный к ошибкам, поэтому я надеюсь, что есть гораздо более элегантное решение.

Screenshot of Excel file with desired end result

28
задан Jeni
01.02.2023 19:11 Количество просмотров материала 3261
Распечатать страницу

1 ответ

Я уверен, что есть способы сделать это очень элегантно, но вот подход, который требует наименьшего количества клеток мозга. :- ) У вас уже есть решение, но проблема в том, что для его настройки и изменения в других случаях требуется много ручной работы. Я сосредоточился на шаблонном подходе, чтобы реализовать то, что вы сделали вручную. Это легко и быстро создать, и может быть повторно использован для других случаев без необходимости изменять его. Это сохраняет форму которая проста отрегулировать и устранить неисправность если ваш необходимо меняться, и объяснять другим.

screenshot1

Вы заметите несколько отличий от своего собственного листа.

  • есть некоторые скрытые столбцы. Я добавил несколько вспомогательных столбцов для помощи в вычислениях.

  • я поменял столбцы grade и credits, чтобы сделать другие последовательности столбцов согласованными. Это позволяет копировать формулы для построения шаблона без изменения их.

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

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

  • я переместил средние в строку внизу, чтобы их можно было вычислить с помощью простой формулы (на самом деле, нет необходимости размещать их там, но более интуитивным является ее просмотр). Я оставил произвольное количество строк для дополнительных курсов. Сделайте это столько, сколько необходимо для максимального количества курсов, с которыми вы можете столкнуться.

здесь все колонны скрытых:

screenshot2

используя одни и те же формулы для каждой строки, настройка этого проста. Просто введите формулы в первой строке, а затем скопируйте строку по мере необходимости. Кроме того, существует несколько различных формул, поэтому их копирование для разных групп будет простым копированием и вставкой. Не волнуйтесь, если вы получаете некоторые значения ошибок временно, как вы строите первую строку; формулы могут ссылаться на ячейки, где вы еще не ввели формулу.

Формулы

1/4 Общую Сумму

Я застрял в C21, просто чтобы оставить произвольное количество дополнительных строк, чтобы добавить больше курсов. Он рассчитывается с использованием всего диапазона, так как пустые ячейки не влияют на результат, и это позволяет иметь любое количество курсов. Формула для ряда в диапазоне 3-20 потенциальных курсов:=SUM(C3:C20)/4

совокупный Кредиты

чтобы выяснить, где начинаются и заканчиваются кредиты для каждой группы, существуют вспомогательные столбцы для расчета совокупных кредитов (или нераспределенных кредитов). Это столбцы D, H и L (4-я группа содержит все, что осталось после 3-й группы, поэтому она сохраняет некоторые вычисления). Формулы, которые при необходимости можно перетащить или скопировать (заполнить потенциальные строки):

D3:  =SUM(C:C3)
H3:  =SUM(G:G3)
L3:  =SUM(K:K3)

вы можете ввести формулу в D3, а затем скопировать ее в H3 и L3.

Неназначенные Кредитов

эти вспомогательные столбцы вычисляют кредиты, оставшиеся после назначения каждой группы. Это столбцы G и K. Это также, как кредиты для 4-й группы рассчитываются в столбце O. формулы:

G3:  =C3-E3
K3:  =G3-I3
O3:  =K3-M3

опять же, вы можете ввести формулу в G3, а затем скопировать ее в K3 и O3.

кредиты для групп

кредиты для групп 1-3 рассчитываются как следует. Если (оставшиеся) накопленные баллы за предыдущий курс составили более 1/4 от общей суммы, это означает, что текущий курс должен быть в следующей группе, поэтому присваиваются нулевые баллы. В противном случае назначается минимум фактического кредита курса или сумма, необходимая для достижения 1/4 общей суммы. Формулы таковы:

E3:  =IF(D2>$C,0,MIN(C3,$C-D2))
I3:  =IF(H2>$C,0,MIN(G3,$C-H2))
M3:  =IF(L2>$C,0,MIN(K3,$C-L2))

вы можете ввести формулу E3, а затем скопировать ее в I3 и M3.

весом

веса сравнить курс назначенных группе на 1/4 общего объема. Эти формулы таковы:

F3:  =E3/$C
J3:  =I3/$C
N3:  =M3/$C
P3:  =O3/$C

вы можете ввести формулу F3, а затем скопировать ее в J3, N3 и P3.

Средние Группы

группа средних функцию sumproduct ранга и соответствующие столбцы вес. Эти формулы таковы:

E21:  =SUMPRODUCT($B3:$B20,F3:F20)
I21:  =SUMPRODUCT($B3:$B20,J3:J20)
M21:  =SUMPRODUCT($B3:$B20,N3:N20)
O21:  =SUMPRODUCT($B3:$B20,P3:P20)

можно ввести формулу E21, а затем скопировать ее в I21, M21 и O21.

после этого в родовое форма, вы можете использовать его как шаблон, без необходимости повторного ввода формул. Просто скопируйте шаблон на другой лист и введите новые данные курсы.

сделать его красивее

Как упоминалось ранее, вы можете скрыть вспомогательные столбцы и подавить нулевые значения. Можно также" скрыть " значения в строках, предварительно заполненных формулами, но не содержащих сведений о курсе. Это делается путем обертывания формул в Столбцах Group и Weight с помощью теста IF.

предполагая, что при добавлении строк для дополнительных курсов столбец Credits будет последним введенным значением, мы можем проверить, пуст ли он, и показать null ( "" ), если это так, в вычисляемых столбцах вместо приведенных выше формул. Оберните формулы следующим образом: '=IF (ISBLANK ($C3),"",formula_above). Так, например, столбцы группы 1 становятся:

E3:  =IF(ISBLANK($C3),"",IF(D2>$C,0,MIN(C3,$C-D2)))
F3:  =IF(ISBLANK($C3),"",E3/$C)

на скриншоте ниже, я предварительно заполненные строки 3-20 с формулами и подавить их, как показано выше (скрытый вспомогательные столбцы не нужно подавлять).

screenshot 3

обратите внимание, что я добавил курс 10 (только название курса, класс и кредит). Вычисленные значения отображаются для строки, группы корректируются для дополнительных данных, а средние отражают дополнительный курс. Я сделал пример в LibreOffice Calc, который не имеет функции подавления нулевых значений (AFAIK), поэтому я не смог проиллюстрировать пример полностью gussied вверх.

2
отвечен fixer1234 2023-02-03 02:59

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

Ваш ответ

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

Имя
Вверх