アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL で DSUM の クライテリア を条件式で 表すにはどうしたら 出来るでしょうか?
普通    条件 3つ の 場合   A1:C4 を
"" = < > * + 等を使つた 条件式で やりたいです

A 回答 (5件)

こんにちは。



データベース関数でしたら、複数のセルの領域を使って、

・横に並べると and 検索 (論理積)
・縦に並べると or検索 (論理和)

というように、基本どおりにしたらよいのではありませんか?

データベース関数というのは、いまひとつ、洗練されていない関数だとは思います。クライテリアの引数の型が、Range(セル)型というのは、どうにも間が抜けているなって思います。時代的な関数のひとつです。

>"" = < > * + 等を使つた 条件式で やりたいです

その質問に至るだけの、理屈や説明がないのでどう答えてよいか分かりません。クライテリアの場所の領域が邪魔なのか、それとも、単なる仕様に対する希望なのか、質問に具体性がありません。

ただ、最近は、みなさん、SUMPRODUCT を使っているようですから、そういう使い方もあると思います。

この回答への補足

>時代的な関数のひとつです。
済みません どういう意味ですか?
SUMPRODUCT 論理演算式ですつきりして 気持ちがいいですね。
できました。SUMPRODUCTを使えば 色々な事が出来そうですね。有難うございました。

補足日時:2007/05/02 21:34
    • good
    • 0
この回答へのお礼

条件設定の種類が沢山あるので、クライテリアの場所の領域が邪魔なのです。SUMPRODUCTを勉強してみます。

お礼日時:2007/04/29 17:52

こんにちは。

Wendy02です。

>LOTUSを使つていましたので、LOTUSで出来る事は EXCELでも 出来ると思つてしまいます。

私も、そう思ってしまいます。
ただ、フィルタオプションなんかで、マクロを使うと、R1C1 方式しか使えないので、Microsoft ネイティブかなって思ったこともあるのですが、そうではないようですね。

>変数とか間接アドレスが使えないので 特定のセルを 変数として使うのが いいですか?

特定のセルを 変数 というのは、「挿入-名前-登録」という方法ですか?
それは可能なのですが、昨日、なぜ、クライテリアがセルではいけないのか検証してみたのですが、クライテリアを、どうも、それぞれの行に当てはめて、計算しているということが分かりました。クライテリアに間接的に参照されるアドレスは、相対参照式で、それぞれの行に当てはめるという計算なのです。そういう計算式ですと、どうやら、セル自体を使わざるを得ないなっていう気がしました。

#1さんの
http://www.takenet.or.jp/~hayakawa/excel0/u-tane …

の「喫煙,飲酒等」の嗜好品アンケートを例に取ると
肥満  喫煙  飲酒
1    1    1



=DSUM(L2:R8,6,L11:N12)
は、

=SUMPRODUCT((Q3:Q8=1)*(M3:M8=1)*(N3:N8=1))

に置き換えることができますし、また、

それは、誰かということを検索したければ、以下のような数式で、

=INDEX(L1:L8,SUMPRODUCT((Q3:Q8=1)*(M3:M8=1)*(N3:N8=1)*ROW(L3:L8)),1)

"D" と出すことができます。
    • good
    • 0

こんにちは。


#2 です。余計な薀蓄かもしれませんが、お答えさせていただきます。

>>時代的な関数のひとつです。
>済みません どういう意味ですか?

もともとは、検索する関数は、LOOKUP やINDEX 関数しかなかったのですが、それでは遅くてとても使いづらいということで、1980年代後半に、データベース関数が生まれたわけです。それと一緒にあるのが、フィルタオプションです。それが登場してきたときには、画期的だったにしても、現在になると、メモリも潤沢で、計算スピードも速くなったわけで、必ずしも、データベース関数を使う必要性はなくなった、と思うのです。

>DSUMの中に入れる方法もあるようなきがしてきました。
私は、無理だと思います。引数の型が違うからです。(もしかしたら、できるという人がいるかもしれません。ただ、私は試してみましたが、うまく行きませんでした。)

私自身も、なぜ、クライテリアを、引数の中に封じこめることができないのか、不便さを感じています。数式を参照する方法は、私も使いますが、それは、外部セル以外はできません。なぜ、外部のセルを必要とするのか、たとえば、配列数式で、クライテリアを入れられないのか、と思います。フィルタオプションも同様です。それで、SUMPRODUCT をお勧めしたわけです。

私は、ユーザー定義関数を作ることはできても、このデータベース関数は、少し特殊な方法を使っているようで、スピードが桁外れに速いのです。だから、とても、ユーザー定義関数では、このようなスピードを確保できないのです。
    • good
    • 0
この回答へのお礼

有難う御座います。LOTUSを使つていましたので、LOTUSで出来る事は EXCELでも 出来ると思つてしまいます。変数とか間接アドレスが使えないので 特定のセルを 変数として使うのが いいですか?

お礼日時:2007/05/05 00:11

[ANo.1この回答へのお礼]に対するコメント、



「クライテリア をセルを使わずに表現したい」の意味が理解できないけど、条件式を使ったやり方を紹介しておきます。(ASIMOVさんが紹介された URL に記載されている例を参照しています)

肥満で喫煙 かつ 飲酒の人数
  =DSUM(L2:R8,6,P11:P12)
  ここに、P11 は空白セルとし、セル P12 に次式を入力
    =AND(Q3=1,M3=1,N3=1)

肥満で間食し かつ 運動しない人
  =DSUM(L2:R8,4,P14:P15)
  ここに、P14 は空白セルとし、セル P15 に次式を入力
    =AND(Q3=1,O3=1,P3=0)

喫煙の人 または 飲酒を嗜み塩味を好む肥満の人
  =DSUM(L2:R8,2,P19:P20)
  ここに、P19 は空白セルとし、セル P20 に次式を入力
    =OR(M3=1,AND(N3=1,R3=1))

男性で BMI が 25超 かつ γ-GTP が 56以上の人
  =DSUM(A1:M25,13,R3:R4)
  ここに、R3 は空白セルとし、セル R4 に次式を入力
    =AND(B2="男",C2>25,K2>=56)
    ここに、B列に性別が、C列に BMI値が入力されていると仮定

最高血圧が 140超の人 または 最低血圧が 90超で総蛋白が 8超の人
  =DSUM(A1:M25,13,R9:R10)
  ここに、R9 は空白セルとし、セル R10 に次式を入力
    =OR(F2>140,AND(G2>90,H2>8))

【お断り】上の内容が理解できなくて質問される場合は、具体的にどの部分かを明記してください。単に「分かンな~い」とか「うまく行かない」だけでは駄目です。
    • good
    • 0
この回答へのお礼

mike_g 様
色々テクニックを ご存知ですね。
<=DSUM(L2:R8,6,P11:P12)
6 の数字 間接アドレスのきざしが?あるいは もう使つておられるのでは?
<P11 は空白セルとし、セル P12 に次式を入力
    =AND(Q3=1,M3=1,N3=1)
DSUMの中に入れる方法もあるようなきがしてきました。
有難うございます。

お礼日時:2007/05/02 23:29

もう少し具体的にお願いします



http://www.takenet.or.jp/~hayakawa/excel0/u-tane …

これの事だとは思うんですが
    • good
    • 0
この回答へのお礼

正にこれです。 クライテリア をセルを使わずに表現したいのです。
例 =dsum(A1:E10,D2,クライテリア セルの範囲を使わずに表現したい) の方法を探しています。

お礼日時:2007/04/29 17:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!