DAVERAGEとDGETで平均と抽出を行う
一致するレコードの平均を求め、単一の一致値を取り出します。
「DAVERAGEとDGETで平均と抽出を行う」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
さらに2つのD関数
このレッスンでは、最後に残った2つのデータベース関数を扱います。
DAVERAGE- 一致するレコードについて、数値フィールドの平均を求めます。DGET- 条件に一致する1行から、単一の値を取得します。
どちらも、すでに学んだ(database, field, criteria)というパターンを再利用します。そのため、新しい構文ではなく、どのような値を返すかを主に学ぶことになります。
DAVERAGEの構文
DAVERAGE(database, field, criteria)は、条件範囲に一致する行について、フィールド列の平均値を求めます。
- database - ヘッダーを含む完全なテーブルです。
- field - 平均を求める数値列です。
- criteria - 一致条件を指定する範囲です。
セルから条件を読み取る点を除けば、AVERAGEIFSに似ています。
=DAVERAGE(A1:C13, "Amount", E1:E2)最初の平均
A1:C13に、Region、Rep、Amountというヘッダーを持つ売上データがあるとします。E1にRegion、E2にEastを入力します。
この数式は、Eastの行にあるAmountの平均を返します。Eastの注文金額が1200、800、1000の場合、平均は1000です。E2をWestに変更すると、平均も自動的に更新されます。
=DAVERAGE(A1:C13, "Amount", E1:E2)条件付きで平均を求める
DAVERAGEでは、条件に関する機能をすべて利用できます。Eastの注文のうち高額なものだけの平均を求めるには、2列の条件範囲を作成します。ヘッダーにRegionとAmountを入力し、その下にEastと>1000を入力します。
同じ行の条件はANDなので、この関数はEastにあり、かつ1000を超える行の金額を平均します。空白のフィールドは無視され、数値だけが平均の対象になります。
=DAVERAGE(A1:C13, "Amount", E1:F2)DAVERAGEで該当なしの場合
0を返すDSUMとは異なり、DAVERAGEは一致する行がない場合に#DIV/0!エラーを返します。0個の値の平均は求められないためです。
先に件数を確認して対処するか、IFERRORで囲んで、エラーコードの代わりに分かりやすいメッセージを表示してください。
=IFERROR(DAVERAGE(A1:C13,"Amount",E1:E2), "No matching records")DGETを使う
DGETは少し異なり、条件に一致する1つの行のフィールドから、単一の値を返します。
ルックアップのように使用します。たとえばOrder IDのような一意のキーがある場合、DGETはその正確なレコードから1つのフィールドを取得します。完全に1件だけ一致することを求める点が、DGETの強みであり、注意点でもあります。
=DGET(A1:C13, "Amount", E1:E2)ルックアップとしてのDGET
テーブルに一意の担当者が登録されていて、担当者「Sara」のAmountを取得したいとします。E1にRep、E2にSaraを入力します。
DGETはSaraの1行を見つけ、そのAmountを返します。一度に複数の条件列で一致させられるため、DGETは通常のVLOOKUPでは扱えない複合キーによるルックアップにも対応できます。
=DGET(A1:C13, "Amount", E1:E2)DGETの2つのエラーケース
DGETは、ちょうど1行に一致することを厳密に求めます。
- 一致する行がない場合は、
#VALUE!を返します。 - 複数の行に一致する場合は、
#NUM!を返します。
これらのエラーは実際には役立ちます。キーが存在しない、または一意でないことを知らせてくれるためです。ちょうど1件のレコードだけが条件を満たすように、条件を絞り込んでください。
複数条件のDGET
一致する行を1つに限定するには、条件を追加します。East地域にいるSaraのAmountを取得したい場合は、2列の条件範囲を使用します。ヘッダーにRepとRegionを入力し、その下にSaraとEastを入力します。
AND条件によって結果が1行に絞り込まれ、DGETはそのAmountを返します。これが、DGETをすっきりした複合キーのルックアップとして使う方法です。
=DGET(A1:C13, "Amount", E1:F2)DGETのエラーを処理する
DGETは一致する行が0件または複数件の場合にエラーになるため、より扱いやすい表示になるように結果を囲みます。IFERRORを使うと、どちらのエラーも読みやすいメッセージに変えられます。
重複と未検出を異なる形で示したい場合は、まずDCOUNTAで件数を確認し、その結果に応じてメッセージを分岐できます。
=IFERROR(DGET(A1:C13,"Amount",E1:F2), "Not found or not unique")D関数の選び方
適切な関数を選ぶための簡単な指針を示します。
- 一致する行の合計が必要ですか。DSUMを使います。
- 一致する行の件数が必要ですか。DCOUNTまたはDCOUNTAを使います。
- 一致する行の平均が必要ですか。DAVERAGEを使います。
- 一致する1行から1つの値が必要ですか。DGETを使います。
4つの関数はすべて同じ条件範囲を使えるため、同じ条件セルの組み合わせで、合計、件数、平均、ルックアップを行うレポートを作成できます。
確認問題
DGETの条件がテーブル内の3行に一致しています。DGETは何を返しますか。
まとめ
D関数ファミリーの学習を終えました。
- DAVERAGEは一致する行の数値フィールドの平均を求めます。一致する行がない場合は
#DIV/0!になります。 - DGETは、ちょうど1行に一致した場合に、その行から1つの値を返します。一致する行が0件の場合は
#VALUE!、複数件の場合は#NUM!になります。 - どちらも
(database, field, criteria)というパターンと、条件範囲におけるAND/ORのルールを共有しています。 - IFERRORで囲むと、すっきりしたプロフェッショナルな出力にできます。
DSUMとDCOUNTも合わせることで、構造化されたテーブルから、条件に基づく完全なレポートを作成できるようになりました。
よくある質問
「DAVERAGEとDGETで平均と抽出を行う」レッスンは無料ですか?
はい。「DAVERAGEとDGETで平均と抽出を行う」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「DAVERAGEとDGETで平均と抽出を行う」で何を学びますか?
一致するレコードの平均を求め、単一の一致値を取り出します。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「DAVERAGEとDGETで平均と抽出を行う」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 条件範囲を設定する
- DSUMでレコードを合計する
- DCOUNTでレコードを数える
- DAVERAGEとDGETで平均と抽出を行う