0Pricing
Excel Formulas Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 条件範囲を設定する
  2. DSUMでレコードを合計する
  3. DCOUNTでレコードを数える
  4. DAVERAGEとDGETで平均と抽出を行う
← Excel Formulas Academyに戻る