Documentation/Calc 関数/SUBTOTAL
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Function name:
SUBTOTAL
Category:
Mathematical
Summary:
指定した数学関数を使用して小計を計算します。SUBTOTAL 関数は、長方形のスプレッドシート領域を占める単純なデータテーブルで使用することを目的としており、データは縦方向に連なる行で編成されます。
SUBTOTAL 関数で処理されるデータ範囲に既に小計(SUBTOTAL)が含まれている場合、値が重複してカウントされないようにするため、小計(SUBTOTAL)は無視されます。データ範囲内のいずれかの行がフィルタで除外されている場合、そのデータはSUBTOTAL 関数では無視されます。また、SUBTOTAL 関数では、手動で非表示にされたデータ範囲内の行のデータをオプションで含めたり、除外したりできます。
Syntax:
SUBTOTAL(集計関数; 範囲)
Returns:
必要な小計を表す数値を返します。それぞれの場合に返される値の性質の詳細については、指定した小計関数について説明しているページを参照してください。
Arguments:
集計関数 は整数、または整数を含むセルへの参照を指定します。これは、小計の計算に使用する関数と、手動 非表示の行を含めるか除外するかを示すインデックスです。関数は、[1, 11] の範囲、または [101, 111] の範囲のいずれかである必要があります。使用可能な各値の意味を次の表に示します。
非表示の行 を含める |
非表示の行 を除外する |
小計に使う 集計関数 |
---|---|---|
1 | 101 | AVERAGE |
2 | 102 | COUNT |
3 | 103 | COUNTA |
4 | 104 | MAX |
5 | 105 | MIN |
6 | 106 | PRODUCT |
7 | 107 | STDEV |
8 | 108 | STDEVP |
9 | 109 | SUM |
10 | 110 | VAR |
11 | 111 | VARP |
範囲 は、小計が計算される実数セットを示します。範囲 は通常、次のいずれかの形式をとります:
- 実数を含むセル範囲への単純な参照(たとえば、A1:A25)。
- 実数を含むセルで構成される名前付き範囲の名前。
- 実数を含むセルで構成されるデータベース範囲の名前。
また、範囲 引数に次の形式を使用しても、エラーは発生しませんが、特に有用であるとは限りません。
- 実数、または実数に評価される式。たとえば、数式
=SUBTOTAL(1; 3)
は 3 を返します。 - 実数を含む単一のセルへの参照。たとえば、セル D1 に数値 123 が含まれている場合、数式
=SUBTOTAL(1; D1)
は 123 を返します。 - 実数のインライン配列({1.1; 2.2; 3.3; 4.4} など)。たとえば、数式
=SUBTOTAL(6; {1; 2; 3; 4; 5})
は 120 を返します。
次の状況(エラーを含む)が発生する可能性があります。
- 集計関数 が数値以外の値の場合、SUBTOTAL は #VALUE! エラーを返します。
- 集計関数 に整数以外の値を指定した場合、SUBTOTAL 関数は小数点以下を切り捨てた整数として認識します。
- 集計関数 が [1, 11] や [101, 111] 範囲内にない場合、SUBTOTAL 関数 は 無効な引数のエラー (エラー:502) を返します。
Additional details:
- 上記の #Syntax: セクションで示されている構文は、Calcの関数ウィザードの構文と一致しています。ただし、2番目の範囲を 3番目の引数として渡し、3番目の範囲を 4番目の引数として渡すなどして、SUBTOTAL 関数に複数の範囲を指定することができます。これにより、Microsoft Excel との相互運用性が提供されます。
- 列を非表示にしても、SUBTOTAL 関数の結果には影響しません。
- 使用可能な11個の小計に使う集計関数の詳細については、それぞれのページを参照してください。
Examples:
12人の生徒のクラスで試験が行われ、その成績が以下の表に示されています。
A | B | |
---|---|---|
1 | 生徒の名前 | 成績 |
2 | Ann | 2 |
3 | Brian | 10 |
4 | Edward | 8 |
5 | James | * |
6 | Jeffrey | 5 |
7 | Linette | 10 |
8 | Monica | 8 |
9 | Ray | 3 |
10 | Robert | 4 |
11 | Tamara | 6 |
12 | Victoria | 7 |
13 | William | 9 |
セル範囲 A2:A13 には生徒の名前がアルファベット順に記入され、セル範囲 B2:B13 には生徒の成績がそれぞれ記入されています。セル B5 のアスタリスク(*)は、「James」が欠席し、テストを受けることができなかったことを示しています。次の例では、上記の表のデータに基づいています。
Formula | Description | Returns |
---|---|---|
=SUBTOTAL(2; B2:B13) |
COUNT 関数を使用して、成績の数を数えます。COUNT 関数は文字列を無視するため、セル B5 のアスタリスクは無視されます。データに非表示の行がないため、数式 |
11 |
=SUBTOTAL(3; B2:B13) |
COUNTA 関数を使用して、成績の数を数えます。COUNTA 関数では文字列のセルも考慮するため、セル B5 のアスタリスクを含めて数えます。データに非表示の行がないため、数式 |
12 |
=SUBTOTAL(4; B2:B13) |
MAX 関数を使用して、最も高い成績の値を抽出します。データには非表示の行がないため、数式 |
10 |
=SUBTOTAL(5; B2:B13) |
MIN 関数を使用して、最も低い成績の値を抽出します。データには非表示の行がないため、数式 |
2 |
次の例では、同じデータテーブルが使用されていますが、行 2 は非表示になっています(行番号を右クリックし、コンテキストメニューから
を選択します)。Formula | Description | Returns |
---|---|---|
=SUBTOTAL(2; B2:B13) |
COUNT 関数を使用して、成績の数を数えます。COUNT 関数は文字列を無視するため、セル B5 のアスタリスクは無視されます。この場合、SUBTOTAL は非表示の行の値も含みます。 |
11 |
=SUBTOTAL(102; B2:B13) |
COUNT 関数を使用して、成績の数を数えます。COUNT 関数は文字列を無視するため、セル B5 のアスタリスクは無視されます。この場合、SUBTOTAL 関数は非表示の行の値を無視します。 |
10 |
=SUBTOTAL(5; B2:B13) |
MIN 関数を使用して、最も低い成績の値を抽出します。この場合、SUBTOTAL は非表示の行の値を含みます。 |
2 |
=SUBTOTAL(105; B2:B13) |
MIN 関数を使用して、最も低い成績の値を抽出します。この場合、SUBTOTAL は非表示の行の値を無視します。 |
3 |
最後の例では、行 2 を表示することによって、データテーブルを元の状態に戻します(行 1 と行 3 の行番号を選択し、選択した行番号のいずれかを右クリックして、コンテキストメニューから
を選択します)。次に、セル範囲 A1:B13 内を左クリックし、メニューバーの ▸ を選択して、オートフィルタを適用します。最後に、成績列の見出しの下矢印をクリックし、ダイアログの下部近くにある数値 10 の横のチェックボックスをオフにして、 ボタンをクリックします。これで、行 3 と行 7 が除外されます。Formula | Description | Returns |
---|---|---|
=SUBTOTAL(2; B2:B13) |
COUNT 関数を使用して、成績の数を数えます。COUNT 関数は文字列を無視するため、セル B5 のアスタリスクは無視されます。データに非表示の行がないため、数式 |
9 |
=SUBTOTAL(3; B2:B13) |
COUNTA 関数を使用して、成績の数を数えます。COUNTA 関数は文字列のセルを含めて数えるため、セル B5 のアスタリスクも含めて数えます。データに非表示の行がないため、数式 |
10 |
=SUBTOTAL(4; B2:B13) |
MAX 関数を使用して、最も高い成績の値を抽出します。データには非表示の行がないため、数式 |
9 |
Related LibreOffice functions:
ODF standard:
Related (or similar) Excel functions:
SUBTOTAL