LibreOffice CalcでSUBTOTAL関数を使っているにもかかわらず、SUM関数のように合計が二重計算されてしまう現象は、フィルタ設定や関数の指定方法によって起こる典型的な集計トラブルです。本記事では、SUBTOTALが正しく機能しない原因と、その解消方法について整理して解説します。
SUBTOTAL関数の基本的な仕組み
SUBTOTAL関数は、フィルタで非表示になっている行を除外して集計できる特殊な関数です。
同じ合計でもSUMとは異なり、データの可視状態に応じて結果が変わります。
そのため正しく使えば、集計ミスを防ぐ便利な関数です。
SUMのように動作してしまう原因
SUBTOTALがSUMのように見える場合、多くは「関数コードの指定ミス」が原因です。
例えば101〜111ではなく1〜11のコードを使っていると、非表示行も含めて計算されることがあります。
また、ネストされたSUBTOTALが再計算対象になることもあります。
小計が二重計算される仕組み
集計表の中にSUBTOTALを複数配置している場合、それをさらに上位でSUBTOTALすると重複計算が発生します。
これはSUBTOTALが「他のSUBTOTAL結果も含めて計算してしまう」仕様によるものです。
その結果、合計が本来の2倍になるなどの誤差が生じます。
正しいSUBTOTALの使い方
重複計算を避けるには、関数コード「101〜111」を使用することが重要です。
これにより、他のSUBTOTAL結果を除外して計算できます。
また、集計範囲を分けることで構造的にミスを防ぐ方法も有効です。
Excelとの挙動の違い
ExcelとLibreOfficeではSUBTOTALの仕様が完全に一致していない場合があります。
そのため、Excelで正しく見えてもCalcでは挙動が異なるケースがあります。
特に古いファイルを互換モードで開く場合にズレが起こりやすくなります。
まとめ
SUBTOTALがSUMのように動作してしまう原因の多くは、関数コードの誤りやネスト構造による重複計算です。
正しいコードを使い、集計階層を整理することで問題は解消できます。
仕様の違いを理解することで、LibreOfficeでも安定した集計が可能になります。


コメント