Мои данные включают несколько повторных измерений (~ 4-5) для каждого участника, и я хочу иметь возможность усреднить все конкретные показатели для каждого участника. например, на прикрепленном снимке экрана я хочу вычислить среднее значение для каждой из мер (столбцы CK, каждый столбец представляет отдельную меру) для первого пользователя (ID = 38106100), второго пользователя (ID = 38212221) и т. д. по отдельности. То есть я хочу вычислить среднее значение для каждого столбца, используя только строки 2-5, а не только строки 6-8, затем 9-12 и т.д., Без необходимости повторять для каждого идентификатора участника (у меня 200 участников) ,

1 ответ1

-1

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

Предположим следующее

Sheet1
A       B       C       D           E
name    date    unit_1  unit_2      unit_3
John    1-2-3   3       9           7
John    2-2-3   9       13          16
Maria   9-10-4  10      8           7
Maria   13-5-4  6       3           7
Maria   9-8-7   8       7           3

Что вы можете сделать, это создать второй лист. - Создайте столбец A, содержащий имя текущего участника (или идентификатор, или любой другой столбец A вашего листа 1 (или B?)). - Создайте столбец B, содержащий первую строку, содержащую информацию об участнике столбца A. - Создайте столбец C, содержащий последнюю строку, содержащую информацию об участнике столбца A. - Создайте столбцы DL, содержащие средние значения.

Предполагая, что вы хотите зарезервировать строку 1 для строки заголовка, этот пример начинается со строки 2.

Row #2
A   = INDIRECT(CONCATENATE("Sheet1!A",B2)  
B   = IF(ROW()=2;2;C1+1)
C   = SUMPRODUCT(MAX((INDIRECT(CONCATENATE("Sheet1!A",B2,":","A",B2+10))=A2)*(ROW(INDIRECT(CONCATENATE("Sheet1!A",B2,":","A",B2+10))))))
D   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!C",$B2,":","C",$C2)))
E   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!D",$B2,":","D",$C2)))
F   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!E",$B2,":","E",$C2)))
G   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!F",$B2,":","F",$C2)))
H   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!G",$B2,":","G",$C2)))
I   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!H",$B2,":","H",$C2)))
J   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!I",$B2,":","I",$C2)))
K   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!J",$B2,":","J",$C2)))
L   = AVERAGE(INDIRECT(CONCATENATE("Sheet1!K",$B2,":","K",$C2)))

Столбец B содержит первую строку (строка 2), если это первая строка в sheet2, в противном случае он примет конечное значение строки выше и +1 к ней. Столбец A получает имя, принадлежащее этой строке, из столбца A, строки столбца B2 из листа с именем «Sheet1». Столбец C находит первую строку, имеющую другое значение в строке A (проверяется только до 10 строк, если более 10 строк, материал может сломаться, отрегулируйте число 10, если вам нужно обслуживать больше строк.) Столбцы DL рассчитывают средние значения. Столбцы DL в основном одинаковы, так что вы можете просто перетащить формулу от D до L.

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