web-dev-qa-db-ja.com

空白またはゼロでない場合は5セルからの平均

5つのセルの平均を計算する必要がありますが、セルが空白またはゼロの場合、この値は無視する必要があります。

私はそれを動作させることができません

=AVERAGEIFS(A10;B13;C5;D6;D8;"<>0")

これを計算する正しい方法を知っている人はいますか?

10
Matthias Vanb

ゼロを除いた非連続値の平均については、次の式を試してください

=IFERROR(SUM(A10;B13;C5;D6;D8)/((A10<>0)+(B13<>0)+(C5<>0)+(D6<>0)+(D8<>0));0)

または負の値がないと仮定すると、これを使用できます

=IFERROR(SUM(A10;B13;C5;D6;D8)/INDEX(FREQUENCY((A10;B13;C5;D6;D8);0);2);0)

質問に従ってセミコロン区切り文字を使用しました。地域の設定で必要な場合はカンマに変更してください

6
barry houdini

あなたは「平均」を探しています: Excel showing averageif

具体的には、可能な空白を含む範囲を使用し、次に基準として「> 0」を使用します

=AVERAGEIF(C1:C5,">0")

更新:隣接しない範囲(すべてが機能しているわけではありません)

この回答のコメントには、ローカリゼーションに関する議論があります。私のロケールは米国(Excel 2010)なので、関数に渡される値の間の区切り文字はコンマです。

隣接しない範囲でaverageif関数を実行することは可能です:

=AVERAGEIF(B1:B1:B3:B3:B5:B5:B7:B7,">0")

Excel 2010 comma-delimited averageif

ロケールによっては区切り文字を調整する必要があるかもしれませんが、重要なのは個々のセルを選択することです。個々のセルC1とD4には「C1:C1:D4:D4」の形式を使用します。エンジンは、参照をペアとして解析する必要があります。

20
Wally

空ではないセルだけで数式を計算したいことに取り組んでいることに気づきました。これを達成するために、私は以下を使用しました:

=IF(COUNT(DATA),COMPUTE(DATA),"")

(ここで、COMPUTEは作成する数式または計算であり、DATAは選択したデータ(私の場合はデータの列)です)。

「通常の値」でないときにセルが空/ゼロ/何かであることを確認するには、次のようなものを使用できます:= IF(CONDITION、NORMAL VALUE、 "")

例:

=IF(SUM(DATA)=0,"",SUM(DATA))

これは、データがゼロ以外の場合にのみデータを合計し、データがゼロの場合、他のセルはこのセルを空白として表示します。

2
Raj

間接を使用したAverageif

この質問に対する私の別の回答で約3回失敗した後、この回答は検査の準備ができているはずです。

=AVERAGEIF(INDIRECT({"b1","b3","b5","b7"}),">0")

Averageif and Indirect

注:私のExcelのローカリゼーションはUnited States Excel 2010です。区切り文字はコンマなので、ロケールごとに調整します。負の数も平均化したい場合は、"<>0"は、Averageif関数の最後の値として。

使い方

Indirect関数は、文字列の配列(この場合)で指定されたセルのみのカスタム範囲を作成します。 Averageifは、基準が満たされた場合にのみ項目をカウントに追加します。

0
Wally