Warning: This Help page is relevant to LibreOffice up to version 6.0.
For updated Help pages, visit https://help.libreoffice.org.

データベース関数

From LibreOffice Help
Jump to navigation Jump to search

ここでは、データベース (1 行のデータを 1 つのレコードと見なす) のデータを処理する関数について説明します。!

Note.png Database カテゴリは、LibreOffice に統合されているデータベースと混同される場合があります。LibreOffice のデータベースと LibreOffice Calc の Database カテゴリとの間に関連はありません。

データ例:

ここでは、いくつかの関数を説明するときに次のデータを例として使用します。

範囲 A1:E10 は Joe 君の誕生日パーティに招待した子供のリストです。各エントリには次のような情報が提供されています。列 A には名前、B には学年、年齢、通学路 (メートル)、および体重 (キログラム) が入っています。

A B C D E
1 名前 学年 年齢 学校への距離 体重
2 Andy 3 9 150 40
3 Betty 4 10 1000 42
4 Charles 3 10 300 51
5 Daniel 5 11 1200 48
6 Eva 2 8 650 33
7 Fランク 2 7 300 42
8 Greta 1 7 200 36
9 Harry 3 9 1200 44
10 Irene 2 8 1000 42
11
12
13 名前 学年 年齢 学校への距離 体重
14 >600
15
16 DCOUNT 5

セル B16 の数式は、=DCOUNT(A1:E10;0;A13:E14) です。

データベース関数のパラメータ:

次に示す項目は、全データベース関数のパラメータ定義です。

データベース は、データベースとして使用するセル範囲です。

データベースフィールド は、最初のパラメータの検索条件が適用され、データ行が選択されたあとに関数が実行される列を指定します。検索条件自体には関係しません。データ範囲全体を指定するには、数字 0 を使用します。列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

検索条件 は、検索条件を含むセル範囲です。1 行に複数の条件を書き込むと、それらは AND で結合されます。異なる行に条件を書き込むと、それらは OR で結合されます。検索条件範囲内の空白セルは、無視されます。

ツール → オプション → LibreOffice Calc - 計算式 を選択して、同じエントリを検索するときの LibreOffice Calc の動作を定義します。

See also the Wiki page about Conditional Counting and Summation.

DSTDEVP

DSTDEVP は、検索基準を満たすデータ範囲内のすべてのセルに基づいて、母集団の標準偏差を計算します。つまり、DSTDEVP はレコードを母集団全体として扱います。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DSTDEVP(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

ジョーの誕生パーティに参加した、年齢が同じ子供たち全員の体重の標準偏差を求めるには (上にスクロールしてください)、次の数式をセル B16 に入力します。

=DSTDEVP(A1:E10;"Weight";A13:E14)

行 14 の Age には、7、8、9 などを順に入力します。結果は、体重を検査された同年齢の子供たち全員の体重の標準偏差です。

DSTDEV

DSTDEV は、データベースにおいて検索基準を満たす行のうち、データベースフィールドの値の標本をとって、母集団の標準偏差を計算します。つまり、DSTDEV はレコードをデータの標本として扱います。つまり、上記例の子供はすべての子供の典型です。ただし、1000 人に満たない標本だけでは本当の典型にはなり得ません。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DSTDEV(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

年齢が同じ子供たち全員の体重の標準偏差を求めるには (上にスクロールしてください)、次の数式をセル B16 に入力します。

=DSTDEV(A1:E10;"Weight";A13:E14)

行 14 の Age には、7、8、9 などを順に入力します。表示される結果は、この年齢の子供たち全員の体重の標準偏差です。

DPRODUCT

DPRODUCT は、セルの内容が検索条件を満たすデータ範囲の、すべてのセルの積を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DPRODUCT(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

上記誕生日パーティの例では (上にスクロールしてください)、この関数は有効に使用できません。

DAVERAGE

DAVERAGE は、データベース内で、検索条件を満たすすべての行 (データベースレコード) のすべてのセル (フィールド) の内容の平均値を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DAVERAGE(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

年齢が同じ子供たち全員の平均体重を知るには (上にスクロールしてください)、次の数式をセル B16 に入力します。

=DAVERAGE(A1:E10;"Weight";A13:E14)

行 14 の Age には、7、8、9 などを順に入力します。年齢が同じ子供たち全員の平均体重が表示されます。

DMIN

DMIN は、データベースにおいて検索基準を満たす行のうち、データベースフィールドの最小値を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DMIN(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

各学年で通学路が最も短い子供を知るには (上にスクロールしてください)、次の数式をセル B16 に入力します。

=DMIN(A1:E10;"Distance to School";A13:E14)

行 14 の Grade には、1、2、3 などを順に入力します。各学年の学校への最短距離が表示されます。

DMAX

DMAX は、検索条件を満たすデータベース内のすべての行 (レコード) の中からセル (フィールド) の最大値を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DMAX(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

各学年で最も重い子供の体重を知るには (上にスクロールしてください)、次の数式をセル B16 に入力します。

=DMAX(A1:E10;"Weight";A13:E14)

Grade には、1、2、3 などを順に入力します。学年番号を入力すると、その学年でもっとも重い子供の体重が表示されます。

DGET

DGET は、検索条件に一致する、データベース内の 1 つのセルの内容を返します。セルが見つからない場合は #VALUE! を、2 つ以上のセルが見つかると エラー: 502 を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DGET(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

上記の例 (上にスクロールしてください) では、セル A14 に入力した名前の子供がどの学年にいるかを調べます。データベースフィールド には 1 列 (1 つのデータベースフィールド) しか入力できないので、数式はセル B16 に入力され、前の例とは少し異なります。次の数式を入力します:

=DGET(A1:E10;"Grade";A13:E14)

A14 に名前 Frank を入力すると、結果 2 が表示されます。Frank は 2 年生です。"Grade" の代わりに "Age" を入力すると、Frank の年齢が表示されます。

または、セル C14 だけに値 11 を入力して、この行のほかの入力を削除します。B16 の数式を次のように編集します:

=DGET(A1:E10;"Name";A13:E14)

学年のかわりに名前が検査されます。11歳の子供は Daniel 1人です。

DCOUNTA

DCOUNTA は、検索条件に一致する数値またはアルファベット値を含むデータベース内の行 (レコード) 数を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DCOUNTA(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

上記の例 (上にスクロールしてください) では、名前が E 以降の文字で始まる子供の数を検索します。B16 の数式を =DCOUNTA(A1:E10;"Name";A13:E14) に編集します。古い検索条件を削除し、フィールド A14 の Name の下に >=E を入力します。結果は 5 です。行 8 の Greta のすべての数値を削除すると、結果は 4 に変わります。行 8 は値を何も含んでいないので、カウントされなくなります。名前 Greta はテキストで、値ではありません。データベースフィールドパラメータは、値を含むことができる列を指す必要があります。

DVARP

DVARP は、データベースにおいて検索条件を満たす行のうち、データベースフィールドのすべての値を使用して、平方偏差を計算します。つまり、DVARP はレコードを母集団全体として扱います。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DVARP(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

Joe の誕生日会に招待された同年齢の子供全員の体重の標本分散を検査します (上にスクロールしてください)。B16 に次の数式を入力します:

=DVARP(A1:E10;"Weight";A13:E14)

行 14 の Age には、7、8、9 などを順に入力します。Joe の誕生日パーティーに参加する、この年齢の子供たち全員の体重値の分散が表示されます。

DVAR

DVAR は、データベースにおいて検索条件を満たす行のうち、データベースフィールドの値の標本をとって、平方偏差を計算します。つまり、DVAR はレコードをデータの標本として扱います。ただし、1000 人に満たない標本だけでは本当の典型にはなり得ません。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DVAR(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

年齢が同じ子供たち全員の体重の平方偏差を求めるには (上にスクロールしてください)、次の数式をセル B16 に入力します

=DVAR(A1:E10;"Weight";A13:E14)

行 14 の Age には、7、8、9 などを順に入力します。結果として、この年齢の子供たち全員の体重値の分散が表示されます。

DSUM

DSUM は、入力された検索条件を満たすすべての行 (レコード) のデータベースフィールドの、すべてのセルの合計を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DSUM(データベース; データベースフィールド; 検索条件)

列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

Joe の誕生日パーティに参加した子供たちのうち、2 年生全員の通学路の合計距離を求めるには (上にスクロールしてください)、次の数式をセル B16 に入力します:

=DSUM(A1:E10;"Distance to School";A13:E14)

行 14 の Grade には、2 を入力します。2 年生の子供たち全員の学校への距離の合計 (1950) が表示されます。

DCOUNT

DCOUNTは、検索条件に一致する数値を含むデータベース内の行 (レコード) 数を返します。

検索機能では、正規表現がサポートされています。たとえば「all.*」と入力すると、「all」の後にどんな文字が続いても良い条件で最初の場所が検索できます。正規表現そのものを検索したい場合は、各文字の前に「\」を付ける必要があります。ツール → オプション → LibreOffice Calc → 計算式 で、正規表現の自動変換のオン/オフを切り替えられます。

構文

DCOUNT(データベース; データベースフィールド; 検索条件)

データベースフィールドパラメータでは、セルに入力して列を指定したり、数字 0 を入力してデータベース全体を指定したりすることができます。このパラメータを空にすることはできません。列ヘッダー名で列を参照するには、ヘッダー名を引用符で囲みます。

上記の例 (上にスクロールしてください) では、学校までの距離が 600 メートルを超える子供の数を調べます。この結果は、セル B16 に格納されます。セル B16 にカーソルを置きます。B16 に数式 =DCOUNT(A1:E10;0;A13:E14) を入力します。範囲の入力には、関数ウィザード が役立ちます。

データベース は、ヘッダーを含む評価対象のデータ範囲です。この場合は、A1:E10 です。データベースフィールド は、検索条件の列を指定します。この場合は、データベース全体です。検索条件 は、検索パラメータを入力できる範囲です。この場合は、A13:E14 です。

2 年生で 7 歳を過ぎている子供の数を知るには、セル D14 の入力 >600 を削除し、Grade のセル B14 に 2 を入力し、右のセル C14 に >7 を入力します。結果は 2 です。2 人の子供が 2 年生で 7 歳を過ぎています。両方の条件は同じ行内にあるので、AND によって結合されます。


Related Topics

OpenOffice.org Wiki Calc の関数