0


1

DSUM:中括弧を使用して基準範囲を定義する方法

例で私の問題を説明する方が簡単だと思います:

画像:https://www.techonthenet.com/excel/formulas/images/dsum001.png [alt text]

上記のスプレッドシートに基づいて、式「= DSUM(A4:D8、B4、A1:A2)」は機能し、20を返します。

なぜ `= DSUM(A4:D8、B4、{" OrderID ";"> 10567 "})`が機能しないのですか? (#VALUE!を返します)

4 Answer


1


http://www.cpearson.com/excel/ArrayFormulas.aspx [このページ]のD-Functionについて述べたことに基づいて、別のセルに基準を設定する必要があると思います。

*編集:*式に基準を含めるという目標が読みやすくすることである場合は、代わりにhttp://www.techonthenet.com/excel/formulas/dsum.php [名前付き範囲]を使用できます。

編集2: コメントへの応答。 + DSUM()`関数がどのように機能するかのために、あなたが望むことをすることはできません(式に基準を含めます)。 http://www.techonthenet.com/excel/formulas/dsum.php [`DSUM`のドキュメント]を見て、http://www.techonthenet.com/excel/formulas/vlookup.phpと比較してください[`VLOOKUP]:

_ _ DSum関数の構文は次のとおりです。

DSum( range, field, criteria )

_range_は、基準を適用するセルの範囲です。

_field_は、値を合計する列です。 リスト内の列の数値位置または二重引用符で列ラベルを指定できます。

criteria_は、条件を含む*セルの範囲*です。 _ __

違いに注意してください。

_ _ VLookup関数の構文は次のとおりです。

VLookup( value, table_array, index_number, not_exact_match )

_value_は、table_arrayの最初の列で検索する値です。

_table_array_は、昇順でソートされた2つ以上の*データの列*です。

index_number_は、一致する値を返す必要があるtable_arrayの列番号です。 最初の列は1です。 _ __

`DSUM`は基準を含む*セルの範囲*を探しているので、それだけを渡すことを避けるためにできることはありません-セルの範囲。

あなたができる最善の方法は、さまざまな基準を名前付き範囲として定義することです。これにより、式で何をしたいのかに応じて、さまざまな基準を簡単に参照できるようになります。 残念ながら、通常の「SUM」関数の速度が十分でない場合、他にできることはあまりありません。「DSUM」を使用するには、セルに基準を指定する必要があります。


1


SUMIF(A5:A8;> 10567; D5:D8)を使用できます。 非常に便利で使用頻度の低い機能。

2番目のパラメーターは、条件を持つ別のセルへのREFである場合があります。


0


DSUMドキュメントから

_ 基準は、指定した条件を含む*セルの範囲*です。 条件引数には、少なくとも1つの列ラベルと、列の条件を指定する列ラベルの下に少なくとも1つのセルが含まれている限り、任意の範囲を使用できます。 _

VLOOKUPは値の配列を使用します。

_ table_array必須。 データを含むセルの範囲。 範囲への参照(A2:D8など)、または範囲名を使用できます。 _


0


Dsumは吸う、これを試してください:= SUMPRODUCT((A5:A8> 10569)*(B5:B8))

通常、このようなものをハードコーディングしないでください。「悪い習慣」ですが、好きなように。