0

スプレッドシートには、うまく機能する平均的な関数がありました。 =AVERAGE( IF('Sheet2'!$2:$2="Tuesday", IF('Sheet2'!7:7<>"", 'Sheet2'!7:7)))

平均計算で 7 行すべてを使用する代わりに、狭い範囲でのみ作業したかったので、式を次のように変更しました。 =AVERAGE( IF('Sheet2'!$2:$2="Tuesday", IF('Sheet2'!B7:Y7<>"", 'Sheet2'!B7:Y7)))

この変更を行うと、数式が #n/a エラーを返します。範囲に #n/a はありません'Sheet2'!B7:Y7

このエラーの原因は何ですか?

4

3 に答える 3

1

これを試して:=AVERAGE( IF('Sheet2'!$B2:$Y2="Tuesday", IF('Sheet2'!$B$7:$Y$7<>"", 'Sheet2'!$B$7:$Y$7)))

これは配列数式なので、入力後は必ず Ctrl+Shift+Enter を押してください。

配列のサイズが対応している場合、Excel は配列数式で最適に動作します。元の数式は各セクションの行全体で機能していたので、特定のセクションのみを操作したい場合は、数式全体を編集して、配列数式の各段階で同じ数のセルで機能するようにします。

このように考えてみてください。行 2 で IF テストを実行していることになります。引数として、30 列あると仮定して、30 テストを実行します。これらのテストのそれぞれについて、sub-if テストを実行して実行し、最終的に 30 個の値を返します。これらの値は average 関数に送信されます。

于 2012-08-28T16:39:35.637 に答える
0

その IF ステートメントのコンポーネントを個別のセルに分割し、それらがどのように True または False に評価されるかを確認することをお勧めします。

ステートメントに問題があると思いますIF('Sheet2'!$2:$2="Tuesday", ...)-私が見る限り、 'Sheet2'!$2:$2 は、「火曜日」に等しい単一の値ではなく、セルの行を定義します。

='Sheet2'!$A$2="Tuesday"最初のテストとして、単独のセルで試してみてください。セル Sheet2!A2 が実際に「火曜日」の場合、この数式は True と評価されます。

于 2012-08-28T16:39:20.543 に答える
0

Excel 2007以降のバージョンを使用している場合は、組み込みの単一関数がありますAVERAGEIF。それはあなたにとってより簡単かもしれません、それは必要ではなくCTRL+SHIFT+ENTER、空白の範囲をチェックする必要はありません(AVERAGEIFとにかくそれらを無視します)ので、この式を使用できます

=AVERAGEIF(Sheet2!$B2:$Y2,"Tuesday",Sheet2!$B7:$Y7)

于 2012-08-28T18:30:12.590 に答える