2

У меня есть следующие AVERAGEIFS которые усредняют столбец I, сгруппированные по значениям в столбце B

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

Проблема, иногда, столбец B иногда содержит ошибку NA() . Как я могу отфильтровать их из уравнения?

Я пытался сделать фильтр

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

но это дает мне ошибку.

Вот некоторые примеры данных:

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

Я хочу добавить столбец C, который показывает рядом с каждой строкой среднее значение для человека, не считая NA.

* 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 |

Что касается пустых мест, меня не волнует, что там происходит - это может быть ошибка или пробел, если NA не влияют на среднее значение, которое меня не волнует.

2 ответа2

1

Вариант 1 - IFNA() с массивом

Я не очень понимаю, что на самом деле должны делать ваши AVERAGEIFS , но все, что вам нужно сделать, чтобы это исправить, это использовать IFNA() вместе с формулой массива (Ctrl + Shift + Enter при вводе формулы):

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

Это превращает значения NA() в пробелы в данных, с которыми вы работаете.


Вариант 2 - очистить ваши данные

Обычно это будет мой вариант 1, но я знаю, что это не то, что вы просили, и поэтому я понизил его до 2 ...

Очевидно, что вся приведенная выше формула заменяет NA() пустыми значениями. В качестве альтернативы, почему бы просто не изначально ваши клетки рассчитывать как пустые? Это также сделает ваши колонки красивее.

Какой бы расчет вы не использовали в своих базовых ячейках, либо измените параметр NA() чтобы вместо него вернуть "" , либо оберните весь расчет в IFNA([insert calculation here],"")

-1

Не очень разумным способом будет добавление нового скрытого столбца (скажем, столбца D) с помощью:

= ЕСЛИ (ЕЧИСЛО (В: В), В: В, 0)

Тогда ваш =AVERAGEIFS(D:D,A:A,A:A) будет работать так, как задумано:

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

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