AVERAGEIF no Excel retorna #VALUE

2

Eu tenho alguns dados numéricos nas células A1: A10. No B2 eu estou tentando obter média de células pares de A1: A10 (A2, A4, A6 ..) de tal forma que deve excluir o ponto de dados se a célula contém 0.

Então usei a fórmula AVERAGEIF junto com a instrução IF para retornar as células pretendidas mais 0s.

Minha fórmula em B2 é (é uma fórmula de array e eu realmente pressionei ctrl shift enter para obter uma fórmula de array)

{=AVERAGEIF(IF(MOD(ROW(A1:A10),2)=0,A1:A10,0),"<>0")}

Esta fórmula devolve #VALUE! e eu não estou recebendo a razão para o mesmo. Eu tentei avaliar o mesmo e tudo fica bem até o penúltimo estágio, no entanto, na última etapa do cálculo, ele retorna #VALUE!.

Alguém pode me ajudar mais a explicar por que essa fórmula retorna #VALUE !? Obrigado.

Outrasatualizações

EuverifiqueiaindaqueessafórmulafuncionamuitobemnoLibreOfficeCalc,assimcomonoPlanilhasGoogle.NocasodoPlanilhasGoogle,eleécolocadoautomaticamenteemumafórmulaArrayFunctionporcontapróprianoCSE.

Alémdisso,descubroqueaAjudaOfflinedoExcel2013paraAVERAGEIFmencionaofatodequeelaaceitaumaEntradadeMatriz.Aquiestáoextratodaajuda.

TheAVERAGEIFfunctionsyntaxhasthefollowingarguments(argument:Avaluethatprovidesinformationtoanaction,anevent,amethod,aproperty,afunction,oraprocedure.):

RangeRequired.Oneormorecellstoaverage,includingnumbersornames,arrays,orreferencesthatcontainnumbers.

CriteriaRequired.Thecriteriaintheformofanumber,expression,cellreference,ortextthatdefineswhichcellsareaveraged.Forexample,criteriacanbeexpressedas32,"32", ">32", "apples", or B4.

Average_range Optional. The actual set of cells to average. If omitted, range is used.

Para mim, é difícil dizer se isso é comportamento por design ou algum tipo de bug de funcionalidade ausente no MS Excel.

    
por rajeev 07.12.2017 / 09:55

1 resposta

3

Nem todas as funções podem ser usadas em uma fórmula de matriz, AVERAGIF já funciona de maneira semelhante, provavelmente não funcionará na fórmula de matriz.

Você pode usar isso:

{=AVERAGE(IF((MOD(ROW(A1:A10),2)=0)*(A1:A10<>0),A1:A10,""))}

Modificações comparadas à sua fórmula original:

  • AVERAGEIF - > %código%
  • AVERAGE (como terceiro parâmetro de 0 ) - > IF ( "" ignora texto)
  • combinou os dois critérios em AVERAGE :
    IF
    • note: não use (MOD(ROW(A1:A10),2)=0)*(A1:A10<>0) e AND em fórmulas de matriz, pois elas não funcionam como esperado, use OR e * .

    
por 07.12.2017 / 10:15