- 締切済み
前回の続きです。自動集計のやり方
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- tsubu-yuki
- ベストアンサー率46% (179/386)
頭だけで考えていても先に進まないので、手も動かしましょうね。 前の回答にも書いてある通り、 >> 例えば例示の赤枠のセル(H20セル)なら、 >> (略) >> 式1:=COUNTIFS($A:$A,"d",$E:$E,"B") です。 検索条件が文字列ですから、ダブルクォーテーション「”」をお忘れなく。 で、1月だろうが12月だろうが「d」は変わらないはずですから、 >> 式2:=COUNTIFS($A:$A,$G20,$E:$E,"B") としてやる方がコピー貼り付けは楽でしょうね。 且つ、1シートに1か月分という面倒な構成のようなので、 集計表を埋める時にINDIRECT関数を使ってもう少し楽しましょうか、 という考え方です。 式が先かリストが先かは問題ではないですよ。 リストを整えてから式を入れても、 式を入れてからリストに追加しても、 式が正しければエクセルは式に沿った答えを返してきます。 ※ほんの時々、仕様上の弱点で答えがずれることもありますが。 今回は小数が絡まないので問題ないはずです。 SUM関数の合計範囲の数字を打ち変えると、返り値も変わってくれますね。 COUNTIFS関数も同様、対象範囲の値が変われば返り値も変わります。 そんなこんな言いつつ、私なら ・ひとまずリストの中にサンプルを数行作る。 ・式を作ってみる。 ・リストに追加変更して、返り値が正しいか確かめる。 の順番でやります。 中には式を先に作る人もいます。 この辺りはそれぞれの好みですね。
- tsubu-yuki
- ベストアンサー率46% (179/386)
基本的には COUNTIFS関数で合ってますよ。 例えば例示の赤枠のセル(H20セル)なら、 ・A列が「d」 ・E列が「B」 を数えるわけですから、 式1:=COUNTIFS($A:$A,"d",$E:$E,"B") あるいは 式2:=COUNTIFS($A:$A,$G20,$E:$E,"B") のどちらでもいけるでしょうね。 ちなみに私なら式2を採用するかな。 1年分をこなそうと思ったら・・ シートの名前を1月・2月・・・12月と直したうえで、 H20セル:=COUNTIFS(INDIRECT(H$16&"!$A:$A"),$G20,INDIRECT(H$16&"!$E:$E"),"B") こんな感じになるのかなぁ。 とりあえず、データベースの世界では、 月ごとのデータ=集計された結果 であって、例えば1年分(以上)を一つのテーブルに持ち、 そこから抜き出して作成するモノです。 1年分(以上)のレコードを蓄積しておけば、 エクセルならピボットテーブルなどで簡単に集計可能です。 「結果」を「取りまとめよう」とするから大変なのです。 この辺を勘違いなさってる方、まだまだ多いようですけれど。
お礼
ありがとうございます!! countifs関数でよいのですね。 すみません。やり方ですがあらかじめdとBを選択より表示させ、 【検索条件範囲1】A列 【検索条件1】d 【検索条件範囲2】E列 【検索条件2】B でしょうか? これで上手くいったためしがありません 汗 それとも回答くださった数式を入力するということでしょうか? 知識がなく申し訳ないです。 よろしくお願いします。
お礼
回答ありがとうございます。 家では教えてくださった数式で入力ができうまくいったのですが、会社ではスムーズにいかず、苦戦しております。 エクセル初心者のため、関数の組み合わせがいっぱいいっぱいです。 countifsa関数のみですとどのような数式になるか教えていただけないでしょうか?また、検索Wordが漢字二文字ですが、その場合どうなるのでしょうか?該当するセルの番号でしょうか? 例)シート1のD列の佐藤の場合かつシート1のM列歴史選択 :=COUNTIFS(Sheet1!$D:$D,$佐藤,Sheet1!$M:$M,"歴史")でしょうか お手数ですがよろしくお願いいたします。