NA ではない AVERAGEIFS 値

NA ではない AVERAGEIFS 値

AVERAGEIFS列Bの値でグループ化された列Iの平均は次のようになります

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

私が望むのは、各行の横に、NA を除いた個人の平均を表示する列 C を追加することです。

* 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気にしません。

答え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],"")

答え2

あまりスマートではない方法は、次のようにして新しい非表示の列 (列 D など) を追加することです。

=IF(ISNUMBER(B:B),B:B,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

関連情報