Excel は SUMIF 式の範囲を自動的に更新しません。なぜでしょうか?

Excel は SUMIF 式の範囲を自動的に更新しません。なぜでしょうか?

Excel 2007 では、次のように配置されたワークシートがあります。

            A           B           C
1           x           2           15
2           x           3           45
3           x           4           46
4           x           1           7
5           x           2           85
6           x           1           14
7           x           1           9
8           x           3           36
9           x           1           5
10              
11          C Total:                262
12          C Total where B > 1:    227

C11は正規ですSUM:

=SUM(C$1:C9)

C12列の値が1 より大きい場合にSUMIFのみ列の値をカウントするです。CB

=SUMIF(B$1:B9, ">1", C$1:C9)

問題は次のとおりです: 行 に行を挿入し10、追加データを追加します:

9           x           1           5
10          y           1           17
11
12          C Total:                265
13          C Total where B > 1:    227

にデータを入力するとC10、Excelは数式の範囲を自動的に更新しますSUMが、ないSUMIF:

=SUM(C$1:C10)

=SUMIF(B$1:B9, ">1", C$1:C9)

通常、このワークシートは 1 行ずつ更新されるため、数式の範囲を調整する必要があり、かなりの時間がかかります。

SUMIFExcelが の場合のようにの範囲を自動的に更新しないのはなぜでしょうかSUM? 自動的に更新するようにすることはできますか、またはこの動作を回避する方法はありますか?

答え1

SUMExcelの場合、あなたが観察したのは自動数式展開実際のところ、Excel は行や列を追加する際に数式参照を調整するためにちょっとした魔法をかけています。 と はSUM非常SUMIFによく似ています (たとえば、データで埋められた範囲の一部に制限する機能を共有しています。このMSDNの記事) の場合、数式展開によって両方がターゲットになることが当然予想されます。実際SUMIFにはそうではありません (少なくとも Office 2007 と Office:mac 2011 ではそうではありません)。これはバグのある動作と言えます (技術的にはバグではない可能性があります)。残念ながら、これを変更する方法はありません。

答え2

データをテーブルにする必要があります。

ExcelIsFunにはそれに関するビデオがありますユーチューブ

関連情報