Jump to content

Documentation/Calc 関数/SUMIF

From The Document Foundation Wiki
This page is a translated version of the page Documentation/Calc Functions/SUMIF and the translation is 100% complete.


Function name:

SUMIF

Category:

Mathematical

Summary:

最も単純な形式では、SUMIF は、範囲内のどのセルが指定された条件を満たすかを判断し、一致したセルの数値の合計を計算します。2番目の形式では、SUMIF は、1つの範囲内のどのセルが指定された条件を満たすかを判断し、2番目の範囲の対応するセルの数値の合計を計算します。

SUMIF に渡される条件では、ワイルドカードまたは正規表現を使用できます。

Syntax:

SUMIF(範囲; 条件[; 合計範囲])

Returns:

関連するセルの数値を加算した結果である実数を返します。

Arguments:

範囲引数

'範囲は'照合するセル範囲を指定します。合計範囲を省略すると、セル範囲の合計が計算されます。範囲は、通常、次のいずれかの形式になります。

  • セル範囲への参照(A1:A25など)。合計範囲が省略されている場合、範囲では参照連結演算子 (~)(チルダ)を使用できます。
  • 名前付き範囲の名前。
  • データベース範囲の名前。

条件 引数

条件は一致する条件、またはその条件を含むセルを指定します。条件には、次のいずれかの形式を使用できます。

  • 34.5 などの数値、日付および論理値 (TRUE または FALSE) は数値として処理されます。
  • 2/3、SQRT($D$1)、DATE(2021; 11; 1) などの式。
  • "golf" や "<>10" などのテキスト文字列。

SUMIF は、条件が比較演算子(>, <, >=, <=, =, or <>)で始まるテキスト文字列でない限り、条件と等しい範囲のセルを検索します。比較演算子がある場合、SUMIF は、範囲のセルをテキスト文字列の残りの部分と比較します(可能な場合は数値として解釈され、それ以外の場合はテキストとして解釈されます)。たとえば、条件 ">4.5" は、各セルの内容が数値 4.5 より大きいかどうかをテストし、条件 "<dog" は、各セルの内容がアルファベット順でテキスト"dog"の前にあるかどうかをテストし、条件 "<>2021-11-01" は、各セルの内容が指定された日付と等しくないかどうかをテストします。

条件 は、次の特定の動作をサポートしています。

  • 文字列 "=" は空のセルに一致します。たとえば、数式 =SUMIF(B1:B10; "="; A1:A10) は、範囲 B1:B10 のすべてのセルが空の場合に、範囲 A1:A10 のすべての値の合計を返します。"=0" は空のセルには一致しないことに注意してください。
  • 文字列 "<>" は、空でないセルに一致します。たとえば、数式 =SUMIF(C1:C10; "<>"; A1:A10) は、範囲 C1:C10 に空のセルがない場合、範囲 A1:A10 のすべての値の合計を返します。
  • "<>" 比較演算子の後の値が空でない場合、条件 は、空のセルを含む、その値を除く任意のセルの内容に一致します。

合計範囲 引数

合計範囲は、合計するセルを指定し、範囲にリストされている形式のいずれかを使用します。合計範囲は、通常、範囲と同じ次元を持つ必要があります。そうでない場合、SUMIF は、合計範囲の最初のセルから始まり、範囲と同じ次元を持つセル範囲を合計します。

エラーの条件

  • SumRange 引数が指定され、連結演算子が Range 内で使用される場合、SUMIF はパラメータ リスト エラー(エラー:504)を返します。

Additional details:

SUMIF 関数に固有の詳細

  • SUMIF では、1つの一致条件のみが許可されます。複数の条件に基づいてセルを合計する必要がある場合は、SUMIFS 関数を使用してください。
  • SUMIF によって実行されるデフォルトの照合では、大文字と小文字が区別されません。ただし、正規表現を使用している場合は、次の例に示すように、正規表現内にモード修飾子 "(?-i)" を含めることによって、大文字と小文字を区別した照合を実行できます。
  • SUMIF の動作は、ツール ▸ オプション ▸ LibreOffice Calc ▸ 計算式 ダイアログ(macOSでは LibreOffice ▸ Preferences ▸ LibreOffice Calc ▸ 計算式) で使用可能ないくつかの設定の影響を受けます。
  1. 検索条件 = と <> はセル全体に適用 のチェックボックスがチェックされている場合、条件 "red" は "red" のみに一致します。チェックされていない場合は、 "red" 、"Fred"、"red herring" に一致します。
  2. 数式でワイルドカードを使用する のチェックボックスがオンになっている場合、条件はワイルドカードを使用して一致します。例えば、"b?g" は "bag"、"beg"、"big"、"bog"、および "bug" と一致します。
  3. 数式で正規表現を使用する のチェックボックスがオンになっている場合、条件は正規表現を使用して一致します。例えば、"r.d" は "red"、"rid"、"rod" に一致し、"red.*" は "red"、"redraw"、および "redden" に一致します。
  4. 大文字と小文字を区別する のチェックボックスの設定は、SUMIF の操作には影響しません。


Calc の正規表現に関する一般事項

Note:
便宜上、このサブセクションの情報は、正規表現を操作する関数を説明するすべてのページで表示されます。

  • 正規表現とは、一致させるテキストのパターンを定義する文字列です。より詳細で一般的な背景情報は、Regular expression ページにあります。
  • 正規表現は多くのドメインで広く使用されており、様々な正規表現プロセッサが利用可能です。Calc では、International Components for Unicode (ICU) のオープンソース正規表現パッケージ を採用しています。ICU 正規表現の構文の完全な定義を含む詳細については、Regular Expressions のドキュメントを参照してください。
  • さらに、LibreOffice のヘルプシステムは、高水準の 正規表現リスト を提供します。
  • Calc の正規表現エンジンは、番号付きキャプチャ グループ をサポートしています。これにより、一致するサブ範囲を識別し、置換テキスト内で使用できます。括弧は、正規表現のコンポーネントをグループ化し、番号付きキャプチャ・グループを作成するために使用されます。キャプチャ グループを置換テキストに挿入するには、"$n" 形式を使用します。ここで、"n" はキャプチャ グループの番号です。


Calc のワイルドカードに関する一般事項

ワイルドカードは、一部の Calc 関数に引数として渡される検索文字列で使用できる特殊文字です。また、検索と置換 ダイアログで検索条件を定義するためにも使用できます。ワイルドカードを使用すると、単一の検索文字列でより高度な検索パラメータを定義できます。

Calc は、現在のアプリケーションの設定に応じて、引数としてワイルドカードまたは正規表現をサポートします。既定では、正規表現ではなくワイルドカードがサポートされます。

ワイルドカードがサポートされていることを確認するには、 ツール ▸ オプション ▸ LibreOffice Calc ▸ 計算式 に移動し、オプション 数式でワイルドカードを使用する が選択されているかどうかを確認します。このダイアログを使用して正規表現に切り替えるには、数式で正規表現を使用する を選択するか、ワイルドカードも正規表現もサポートしないように選択します。

次の表に、Calc でサポートされているワイルドカードを示します。

Calc wildcards
ワイルドカード 説明
?
(クエスチョン マーク)
任意の 1 文字に一致します。たとえば、検索文字列 "b?g" は "bag" および "beg" に一致しますが、"boog" または "mug" には一致しません。

"?"正確に 1 文字に一致する必要があるため、"bg" にも一致しないことに注意してください。"?" ワイルドカードは、0 文字の一致には対応しません。
*
(アスタリスク)
空の文字列を含む任意の文字列と一致します。たとえば、検索文字列 "*cast" は、"cast"、"forecast" および“outcast”と一致しますが、デフォルトの Calc 設定を使用する場合 "forecaster" とは一致しません。

ツール ▸ オプション ▸ LibreOffice Calc ▸ 計算式 でオプション 検索条件 = と <> はセル全体に適用 が無効になっている場合、"forecaster" は "*cast" の検索文字列を使用し一致させることができます。
~
(チルダ)
チルダ文字の直後に続く疑問符、アスタリスク、または チルダ文字の特別な意味をエスケープします。

例えば、検索文字列 "why~?""why?" に一致しますが、 "whys""why~s" には一致しません。

ワイルドカードの比較では大文字と小文字が区別されないため、 "A?" は "A1" と "a1" の両方に一致します。

これらのワイルドカードは、Calc と Microsoft Excel の両方でサポートされています。したがって、2 つのアプリケーション間の相互運用性が必要な場合は、正規表現ではなくワイルドカードを使用することを選択します。逆に、相互運用性が必要でない場合は、より強力な検索機能を利用できる正規表現の使用を検討してください。

Examples:

基本的な例

Formula Description Returns
=SUMIF(A1:A9; "<0")
セル A1 から A9 には、それぞれ [-1, 2, -3, 4, -5, 6, -7, 8, -9] という数値が含まれています。
セル範囲 A1:A9 の負の数を合計します。 −25
=SUMIF(A1:A9; F1)
セル A1 から A9 には、それぞれ [-1, 2, -3, 4, -5, 6, -7, 8, -9] という数値が含まれています。そして、セル F1 には、文字列 ">=0" が含まれています。(二重引用符を入力せずに入力)
セル範囲 A1:A9 の負でない数値を合計します。 20
=SUMIF(B2:B4; "<"&F2; C2:C4)
セル B2~B4 にはそれぞれ 7、9、11 という数字が含まれ、セル C2~C4 にはそれぞれ 4、5、6 という数字が含まれ、セル F2 には 10 という数字が含まれています。
セル B2 と B3 の値が 10 未満であると判断され、セル C2 と C3 の値が合計されます。 9
=SUMIF(D1:D9; "apples"; E1:E9)
セル D1、D4、D5、D6、D9 には文字列「apples」が含まれ、セル D2、D3、D7、D8 には文字列「pears」が含まれ、セル E1~E9 には、対応するフルーツの数量を表す数値 12、19、10、279773、79、71、40 がそれぞれ含まれています。
「apples」の合計数量を計算します。 249

他の例

このサブセクションの例は、スポーツ用品の販売データの小規模なデータベースに基づいており、データは次の表のように編成されています。

A B C D E
1 日付 売上高 カテゴリ 地域 従業員
2 2021-10-02 $1,508 Golf East Hans
3 2021-10-02 $410 Tennis North Kurt
4 2021-10-02 $2,340 Sailing South Ute
5 2021-10-03 $4,872 Tennis East Brigitte
6 2021-10-06 $3,821 Tennis South Fritz
7 2021-10-06 $2,623 Tennis East Fritz
8 2021-10-07 $3,739 Golf South Fritz
9 2021-10-08 $4,195 Golf West Ute
10 2021-10-10 $2,023 Golf East Hans
Formula Description Returns
=SUMIF(B2:B10; ">=4000") 売上高 データ内の $4,000 以上の数値が合計されます。 $9,067
=SUMIF(E2:E10; "ute"; B2:B10) 従業員データ内の Ute の入力値を検索し、売上高 データ内の対応する入力数値を合計します。 $6,535
=SUMIF(CategoryData; "golf"; B2:B10)
ここで、名前付き範囲 CategoryData は、セル範囲 C2:C10 をカバーするように作成されています。
カテゴリ データ内の Golf の入力値を検索し、売上値 データ内の対応する入力数値を合計します。 $11,465
=SUMIF(D2:D10; F1; B2:B10)
セル F1 には、文字列 ">=south" が含まれています。(二重引用符を入力せずに入力)
地域 データで South と West の入力値を検索し、売上高 データ内の対応する入力数値を合計します。 $14,095
=SUMIF(A2:A10; DATE(2021; 10; 2); B2:B10) 日付 列内の 2021-10-02 の入力値を検索し、売上高 データ内の対応する入力数値を合計します。 $4,258
=SUMIF(A2:A10; ">="&DATE(2021; 10; 7); B2:B10) 日付 列内の 2021-10-07 以降の日付の入力値を検索し、売上高 データ内の対応する入力数値を合計します。 $9,957
=SUMIF(D2:D10; "????"; B2:B10) この例は、ワイルドカードが使用可能になっている場合にのみ、ここで説明するように機能します。この数式は、地域 データ内の 4文字の入力値( East および West )を検索し、売上高 データ内の対応する入力数値を合計します。 $15,221
=SUMIF(E2:E10; "^f.*"; B2:B10) この例は、正規表現が有効になっている場合にのみ機能します。この数式は、文字「f」または「F」(Fritz)で始まる 従業員 データ内の入力値を検索し、売上高 データ内の対応する入力数値を合計します。 $10,183
=SUMIF(E2:E10; "(?-i)ute"; B2:B10) 正規表現が有効な場合にのみ、ここで説明するように動作します。正規表現内の "(?-i)" モード修飾子は大文字と小文字を区別する一致に変更されるため、従業員データには入力値が見つかりません。この表の 2 番目の例と比較してください。 $0

Related LibreOffice functions:

COUNTIF

SUM

SUMIFS

ODF standard:

Section 6.16.62, part 2

Related (or similar) Excel functions:

SUMIF