- 締切済み
エクセルのデータベース関数について
DSUMなどのデータベース関数の条件(クライテリア)の指定において,複数の条件を指定できるのでしょうか? 例えば,布について,フィールドに色(黒,白,赤,黄,緑),値段,大きさ(大,中,小)があるデータベースの中から,色が黒と白,大きさが大のものの値段の和を求める場合,セルに A B 1 色 大きさ 2 黒 大 3 白 というような,クライテリアの指定ができるのでしょうか?このとおり指定しても,上手く計算されてこないのですが?Aで色を黒と白と複数指定できないのでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- comv
- ベストアンサー率52% (322/612)
こんばんは! 既に解決済みですが >クライテリア内にAND/ORなんかが使えたら,もっと楽ですよね。 ここの考え方だけ!<余談ですから読み流して下さい^^;> 今回の場合 項目1 項目2 △ □ ○ □ これは、既にご承知のとおり (項目1=△ AND 項目2=□)OR(項目1=○ AND 項目2=□) となり 各行ごとのOR条件です 同様にANDの条件としては (今回の例では有得ませんが) 例えば 項目1が1以上 10以下 項目2が□ の場合 項目1 項目1 項目2 >=1 <=10 □ (項目1 >=1 AND 項目1 <=10 AND 項目2=□) のように記載します。 フィルターオプションなどで条件記載も同様です。 当然ですが、条件欄に数式で条件を与えることも可能です。 例 A B 1 項目1 項目2 2 =">="&MAX(項目1列範囲)/2 =IF(A2>10,"□","○") 項目1条件 列A全体の数値の最大値の1/2以上 項目2条件 項目1条件が10より大きければ□それ以外なら○ を検索条件とする。 ----------------------- ワイルドカード 文字列の検索にはワイルドカードを駆使すると便利です 例 住所録などで 項目1 東京都*区* ・・・・東京都で区のつく住所(23区) 項目1 ??県* ・・・・県名が2文字の県 項目1 *県??*郡* ・・・・各県の内、郡のつく住所 (??*で2文字以上 の ○○*郡を条件として 郡山や小郡 を避けている。) などなど
- nishi6
- ベストアンサー率67% (869/1280)
DSUMとかは余り使わないので他の方法を紹介します。 表題がA1に『色』、B1に『大きさ』、C1に『値段』があって、2行目から11行目まで10個のデータがあるとします。 =SUM(IF(OR(A2:A11="黒",A2:A11="白"),IF(B2:B11="大",C2:C11,0),0)) として、Ctrl+Shift+Enter とすれば答えが出るはずです。配列数式を使っています。 算式中の"黒"、"白"、"大"をそれを入力したセルにすれば、いろいろなパターンが計算できます。 二重、三重の条件でも可能です。カウントなどもできます。DSUMより使いやすいかもしれません。 ご参考に。
- NIWAKA_0
- ベストアンサー率28% (508/1790)
例で言うと、B3のセルに"大"と入れていないのが 原因だと思われます。 このままでは、(色:黒・大きさ:大)と(色:白・大きさ:条件無し)の値段の和が算出されているはずです。 クライテリアが空欄だと条件無しと判定されるようです。 参考までに、色が黒か白、大きさが大か小の値段の和の場合は、 A B 1 色 大きさ 2 黒 大 3 黒 小 4 白 大 5 白 小 のように、全組み合わせを入力してやらないとダメなようです。 もっとも、上の例なら A B 1 色 大きさ 2 黒 <>中 3 白 <>中 という、少々卑怯くさいテも使えますが・・・。 どうもこのDSUM関数というのは、条件を増やすと非常に面倒くさそうです・・・。AND/OR等の論理式が使えればよいのですが。
お礼
ありがとうございます。 さっそく試してみます。最後の<>というのは「それ以外」ということなのですか?知りませんでした。役立ちそうです。 おっしゃるとおり,クライテリア内にAND/ORなんかが使えたら,もっと楽ですよね。あまり,条件を複雑にするには限界があるかもしれませんね。所詮,表計算ソフトですから。
- k_eba
- ベストアンサー率39% (813/2055)
回答 色=黒 かつ 大きさ=大 を求め 色=白 かつ 大きさ=大 を求め加算ではいけませんか またB3に大を入力して下さい。 参考 エクセルのヘルプでデータベース関数
お礼
ありがとうございます。 項目が少ない時は,おっしゃるようなやり方でやっているのですが,項目が増えると,どうもめんどくさいので,何かてっと利早い方法がないものかと思ったものですから・・・。
お礼
なるほど! そんな方法があるなんて知りませんでした。 ただ,検索条件がある一定のパターンになる場合は使えそうですね。ただ,個人的に,長い関数の式にはちょっと苦手なので,条件が多い場合はこんがらがりそうです・・・。