Valores AVERAGEIFS que não são NA

Valores AVERAGEIFS que não são NA

Eu tenho o seguinte AVERAGEIFSque calcula a média da coluna I agrupada pelos valores da coluna B

= AVERAGEIFS(B:B, A:A, A:A)

O problema é que, às vezes, a coluna B contém um NA()erro. Como faço para filtrar isso da equação?

tentei fazer um filtro

= AVERAGEIFS(ARRAYFORMULA(IF(ISNUMBER(B:B),B:B)), A:A,A:A)

mas isso me dá um erro.

Aqui estão alguns dados de amostra:

* A    *  B  *
| Fred |  8  |
| Bill |  9  |
| Jane |  NA |
| Jane |  9  |
| Fred |  NA |
| Bill |  5  |
| Fran |  9  |
| Fred |  4  |
| Jane |  1  |

O que eu quero é adicionar uma coluna C que mostre ao lado de cada linha, a média da pessoa sem contar os NAs.

* A    *  B  * C *
| Fred |  8  | 6 |
| Bill |  9  | 7 |
| Jane |  NA |   |
| Jane |  9  | 5 |
| Fred |  NA |   |
| Bill |  5  | 7 |
| Fran |  9  | 9 |
| Fred |  4  | 6 |
| Jane |  1  | 5 |

Quanto aos espaços em branco, não me importo muito com o que acontece ali - pode ser um erro, ou um espaço em branco, desde que os NAs não afetem a média, não me importo.

Responder1

Opção 1 - IFNA() com Array

Eu realmente não entendo o que você AVERAGEIFSrealmente deveria estar fazendo, mas tudo que você precisa fazer para corrigir isso é usar IFNA()junto com uma fórmula de matriz ( Ctrl + Shift + Enterao inserir a fórmula):

= AVERAGEIFS(IFNA(B:B,""), A:A, A:A)

Isso transforma NA()valores em espaços em branco nos dados que você está manipulando.


Opção 2 – Limpe seus dados

Normalmente, essa seria minha opção 1, mas estou ciente de que não é o que você pediu e, por isso, rebaixei para 2...

Obviamente, tudo o que a fórmula acima faz é substituir NA()por valores em branco. Alternativamente, por que não inicialmente fazer com que suas células sejam calculadas como espaços em branco? Isso também fará com que suas colunas pareçam mais bonitas.

Qualquer que seja o cálculo que você tenha em suas células base, altere a NA()opção para retornar ""ou envolva todo o cálculo emIFNA([insert calculation here],"")

Responder2

Uma maneira não tão inteligente será adicionar uma nova coluna oculta (digamos, coluna D) com:

=SE(ÉNÚMERO(B:B),B:B,0)

Então você =AVERAGEIFS(D:D,A:A,A:A)funcionará conforme planejado:

Fred    8   4
Bill    9   7
Jane    NA  3.333333333
Jane    9   3.333333333
Fred    NA  4
Bill    5   7
Fran    9   9
Fred    4   4
Jane    1   3.333333333

informação relacionada