OK, se os dados numéricos de dados estiverem em linhas em Sheet1
, insira seu valor M em Sheet2!M1
e digite
=AVERAGE(LARGE(Sheet1!1:1, ROW(INDIRECT("1:"&M$1))))
em Sheet2!A1
. (Se os dados estiverem apenas em, por exemplo, Colunas G
a Z
, altere Sheet1!1:1
para Sheet1!G1:Z1
.) Pressione Ctrl + Deslocamento + < kbd> Digite para criar uma fórmula de matriz. Arraste quantas linhas precisar e você deve terminar.
Explicação:
-
&
é o operador de concatenação de strings no Excel (e, pelo que ouvi, o Libre Office Calc é muito semelhante ao Excel), assim, seSheet2!M1
for, digamos, 17, então"1:"&M$1
se tornará o valor da string"1:17"
. -
INDIRECT("1:17")
é a região que compreende a linha1
até a linha17
e -
ROW()
disso é o array{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}
.
Este é um truque para criar um valor de matriz especificado por dados de tempo de execução. -
LARGE(Sheet1!1:1, {1…17})
é a matriz{ LARGE(Sheet1!1:1,1), LARGE(Sheet1!1:1,2), LARGE(Sheet1!1:1,3), …}
, que é o maior membro deSheet1!1:1
, o segundo maior,… e assim por diante, até o dia 17.
Obrigado ao teylyn, cuja resposta ao pergunta semelhante eu usei para inspiração.