【Excel】この条件で集計を3つに分けたい…??(謎

このQ&Aのポイント
  • お小遣い帳の作成において、特定の条件で集計を3つに分ける方法について質問です。
  • 条件によってD列、E列、F列に集計する方法を知りたいです。
  • 具体的な条件としては、A列に「●」がある場合はE列に、A列に「■」がある場合はF列に、●も■もない場合はD列に集計したいです。
回答を見る
  • ベストアンサー

【Excel】この条件で集計を3つに分けたい…??(謎

 今、お小遣い帳のようなのを作っているのですが… 以下の条件で集計したい場合、D~F列に入れる式は、 どのようにすれば… というか、式で可能ですか?(謎 分からなくて困ってます。よろしくお願いいたします☆ ・1行目は項目名です。 ・2行目には前の月の繰越金を入力します。 ・A列で、文末に●があるものの集計はE列に出す。 ・A列で、文末に■があるものの集計はF列に出す。 ・A列で、●も■も無い項目の集計はD列に出す。 図にすると↓こんな感じです。※変になるかも;(>_<) ┌─┬──┬──┬──┬──┬──┬──┬ │  │ A │ B │ C │ D │ E │ F │ ├─╋━━┿━━┿━━┿━━┿━━┿━━┿ │1 ┃摘要│収入│支出│合計│●計│■計│ ├─╂──┼──┼──┼──┼──┼──┼ │2 ┃繰越│   │   │1000│1000│1000│ ├─╂──┼──┼──┼──┼──┼──┼ │3 ┃…●│1000│   │   │2000│   │ ├─╂──┼──┼──┼──┼──┼──┼ │4 ┃……│ 500│   │1500│   │   │ ├─╂──┼──┼──┼──┼──┼──┼ │5 ┃…■│   │ 500│   │   │ 500│ ├─╂──┼──┼──┼──┼──┼──┼ ちなみに、●と■には、それぞれ違う銀行名を入れる予定です。 ( つまり、お小遣いと同じシートで預金も管理したいかなーって。) お願いします☆  

質問者が選んだベストアンサー

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.2

No.1です。 > A列で、文末に●があるものの集計はE列に出す。 > A列で、文末に■があるものの集計はF列に出す。 <文末に>という条件なら、No.1の数式にある "*●*" と "*■*" は、"*●"、"*■" に変えてください。● ■ の前だけに 半角の * ( アスタリスク )をつけます。( ● ■ は銀行名に置き換えてください )  "*●*" のように前後にアスタリスクをつけると、文末に限らず<●を含む>という条件になります。 要は↓な感じになります。 E3に =IF(COUNTIF($A3,"*●"),E$2+SUMIF($A$3:$A3,"*●",$B$3:$B3)-SUMIF($A$3:$A3,"*●",$C$3:$C3),"") F3に =IF(COUNTIF($A3,"*■"),F$2+SUMIF($A$3:$A3,"*■",$B$3:$B3)-SUMIF($A$3:$A3,"*■",$C$3:$C3),"") それと、D3に入れる式を忘れてました。 D3に =IF(A3="","",IF(SUM(COUNTIF($A3,{"*●","*■"})),"",$D$2+SUM($B$3:B3)-SUM(SUMIF($A$3:A3,{"*●","*■"},$B$3:B3))-SUM($C$3:C3)+SUM(SUMIF($A$3:A3,{"*●","*■"},$C$3:C3)))) と入れて、気が済むまで下にフィルコピーしてください。 ※これもアスタリスクのつけ方に注意してください。

yuka_chan
質問者

お礼

しおたん99さん、ありがとうございます☆ おかげ様で思い通りに出来ましたぁ~~!!!! これで銀行から引き出したり預けたりが分かるし、 残高も一目瞭然だし、とても便利になりました♪ もっと早くお礼したかったのですが( こんなにも 分かり易く説明してくださっているにも係わらず!) 微妙に てこずってて遅くなっちゃいました^^; 理解できれば一気に「あー」ってなるんですけどね。 「あー」ってなるまでが大変ですよね( 意味不明 ) こんなに長い式になるとはビックリでした。 しおたん99さんは凄いです。 本当に、どうもありがとうございました☆ また機会があったら、お願いしますm(_ _)m

その他の回答 (2)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

すみません、№1 & №2です。 ごていねいなお礼をいただいて恐縮です。 実は質問が締め切られてからあらためて考えてみると、№2のような長ったらしい式を使わなくてももっとカンタンな方法があることに気づいてしまいました( ←いつものことですが‥ (-_-;) 一応お伝えしておこうと思い、事務局に回答の追加をお願いした次第でございます。 お手数をおかけしますが、以下の方法を試してみてください。 【 必須条件 】 ・D2、E2、F2の繰越欄に必ず金額が入力されていること。 ( たとえ預金の繰越残高が 0円であっても、0 と入力してくださいっ!ヾ(^^;)ぉぃ ) ★ D3に =IF(OR(A3="",SUM(COUNTIF(A3,{"*●","*■"}))),"",LOOKUP(MAX($D$2:D2)+1,$D$2:D2)+B3-C3) または =IF(OR(A3="",SUM(COUNTIF(A3,{"*●","*■"}))),"",LOOKUP(10^9,$D$2:D2)+B3-C3) と入力( どちらでもかまいません。以下同じ ) ★ E3に =IF(COUNTIF($A3,"*●"),LOOKUP(MAX(E$2:E2)+1,E$2:E2)+$B3-$C3,"") または =IF(COUNTIF($A3,"*●"),LOOKUP(10^9,E$2:E2)+$B3-$C3,"") と入れたあと、↑の式を 右の F3にフィルコピーして ●の銀行名を■の銀行名に変更。 ★ F3の式が↓のようになっていれば OKです。 =IF(COUNTIF($A3,"*■"),LOOKUP(MAX(F$2:F2)+1,F$2:F2)+$B3-$C3,"") または =IF(COUNTIF($A3,"*■"),LOOKUP(10^9,F$2:F2)+$B3-$C3,"") D3、E3、F3の式を必要なだけ下にフィルコピー 以上で №2の式と同じ結果になると思います。 * * かんたんに説明しておきますと‥ =LOOKUP(検査値,範囲) という式は、範囲内の<どの数値よりも大きな値>を検査値として指定してやると、その範囲内のいちばん最後の数値を返します。(←たぶんヘルプを見てもこんなことは書かれていないと思いますが‥) たとえば =LOOKUP(MAX(F1:F10)+1,F1:F10) または =LOOKUP(10^9,F1:F10) とすると、F1:F10 の範囲で、F3、F5、F7 だけに数値が入っていて他は空白だとすれば、F7に入っている数値が返る、ということです。 MAX(F1:F10) で、F1:F10 の中のいちばん大きな数値が求められるので、それに1を足してやれば、F1:F10の範囲内の<どの数値よりも大きな値>を指定したことになります。 もうひとつの 10^9 は 10の9乗、つまり10億ということです。範囲内に10億以上の数値がなければ、これで範囲内の<どの数値よりも大きな値>を指定したことになります。 預金残高が10億円以上ある場合は、もっと増やして 10^13 とかにしてください。 * 以下は余計かもしれませんが‥ たとえば J2セルに =IF(COUNT(D:D),LOOKUP(10^9,D:D),"") と入れると、D列全体の中でいちばん最後の( いちばん下の )数値が返ります。 これを右の K2、L2にコピーしてやれば、J2 に D列の最新残高、K2 に E列の最新残高、L2 に F列の最新残高が表示されると思います。 ご質問の A列からF列がタテに長い表なら、いちいち下にスクロールして探さなくても J2:L2 を見るだけで、最新の残高が確認できて便利ではないでしょうか。 * ただ、この回答がちゃんと届くのか( ゆかchanさんが気づいてくれるのか )がちょっと気がかり‥

yuka_chan
質問者

お礼

まぁ!いらっしゃいませ(*^^*) >> 事務局に回答の追加をお願いした次第で 恐縮です(>_<) このように誠実な方がいらっしゃったとは(驚) もっとユックリ開いておけば良かったですね^^; 正直わたし自身は結果が同じならいいかなぁって 思ってたけど(ォィ) ここには検索して他の人も 見に来るし、助かると思います。 あ。でも教えてもらったのに書き換えました☆ >> LOOKUP(検査値,範囲) という式は、<中略> >> その範囲内のいちばん最後の数値を返します。 LOOKUP関数は使ったことあったけど、 ゼンゼン知らなかったです!!(喜) >> 預金残高が10億円以上ある場合は、 その場合は多分、こんな小遣い帳なんか 作らずにバンバン使うと思います…(笑) >> 以下は余計かもしれませんが‥ あー、それはチョットやりたかったのです! ありがとうございます♪♪ シオタン99さんの説明は凄く分かりやすいです☆ 新しいほうの質問も答えて頂いて嬉しかったです。 …今から、そちらのほうのお礼も書きますね(笑)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.1

こんにちは~ よくわかりませんが・・ E3に↓ =IF(COUNTIF($A3,"*●*"),E$2+SUMIF($A$3:$A3,"*●*",$B$3:$B3)-SUMIF($A$3:$A3,"*●*",$C$3:$C3),"") F3に↓ =IF(COUNTIF($A3,"*■*"),F$2+SUMIF($A$3:$A3,"*■*",$B$3:$B3)-SUMIF($A$3:$A3,"*■*",$C$3:$C3),"") と入れて、それぞれ必要なだけ下にフィルコピー、ということでしょうか?

関連するQ&A

  • Kシェル上でフラットファイルの条件付き集計をしたい。

    いつもお世話になっています。Kornシェルで、以下のようなcsv形式のファイルを次の様に集計したいです。 <列A,C,D,E,F,G が全て一致する行毎に列Fの値を集計> (入力) 列A------列B------列C----列D---列E--列F-----列G------列F "10001","0090300", 11110," "," "," "," ",1013134 "10001","0090300", 11130,"0009","888","01","5050455",28428260 "10001","0090300", 11130,"0001","001","01","1111111",258925 "10001","0090300", 11165,"9900","999","09","9999903",0 "10001","0090300", 11110," "," "," "," ",592092 "10001","0090400", 11130,"0009","129","01","1018224",12489867 "10001","0090300", 11130,"0001","001","01","1111111",200000 "10001","0090400", 11165,"9900","999","09","9999904",834592 "10001","0090700", 11110," "," "," "," ",300000 (期待する出力) "10001","0090300", 11110," "," "," "," ",1905226 <--- 1行目, 5行目, 9行目が集計されている "10001","0090300", 11130,"0009","888","01","5050455",28428260 "10001","0090300", 11130,"0001","001","01","1111111",458925 <--- 3行目と7行目が集計されている "10001","0090300", 11165,"9900","999","09","9999903",0 "10001","0090400", 11165,"9900","999","09","9999904",834592 "10001","0090400", 11130,"0009","129","01","1018224",12489867 出力のソートの必要はありません。 これをシェル・スクリプトだけで実装するのは、無理でしょうか。良いアイディアをお願いします。

  • 【Excel】マクロを使って、自動集計ができるようにしたいと思っています。

    こんにちは。 宜しくお願い致します。 アクセスがあったデータをピポッドテーブルでまとめ、さらに集計結果を出したいと思っています。 ピポッドテーブルを作成するまではマクロの自動記録でどうにかなったのですが、その後の集計結果のところでとまどっています。 <データの現状> ※ピポッドテーブルで出したデータは、1・2行目が空白、3~5行目に項目名が入っており、6行目からデータが入っています。何行までデータが入っているかはその月によって異なり、行の一番最後はA列に「総計」と入力されています。 ※A~C列は項目名(日付や商品名など)が入っています。 D列以降は合計などが入っており、ここで基準として使いたい項目はすべて4行目に入っています。 列の数は項目によって増減します。 項目の一番最後は「総計」です。 マクロで集計したいのは次の作業です。 (1)「Sheet1」を全コピー→「Sheet2」に形式を選択して貼り付け→値貼り付け (2)貼り付けたシートで、D列以降、4行目の項目が「集計1」「集計2」「詳細集計」「総計」以外のものも列を表示しないにする ※D列から始まって、「集計1」の前の列までを表示しないにするのと、「集計1」の次の列から「集計2」の前の列までを表示しないにしたい。 例えば、H列に「集計1」・L列に「集計2」が入力されている場合は「D~G列」「I~K列」を表示しないにしたい。 (3)詳細集計の列を1列選択し、列を1行挿入。挿入した列4行目のセルに「合計」と入力。 (4)挿入した列のところに、6行目以降、A列に「総計」と入っている行まで数字のデータが入っているところ(A列で「総計」と表示されている行まで)は、「集計1」と「集計2」のセルの合計をそれぞれ表示し、枠線を入れる。 (5)一番先頭に1列挿入し、6行目から元A列の「総計」と表示されている前までの通し番号を入れる。 (6)「総計」の次の列の4行目に、「ゼロ数」と入力し、5行目に(3)で挿入した列、A列に「総計」と入っている1行前までの範囲で「0」表示があるセル数を表示。 (7)ゼロ数と入力したの次の列の4行目に「ゼロ率」と入力し、先に出した「ゼロ数」を(5)で入力した通し番号の一番最後の数で割った数を表示。 (8)入力終えた後はA1のセルを選択。 以上になります。 長いですが、どなたか教えてください。 宜しくお願い致します。

  • 複数条件での集計方法について(Excel2003)

    複数の条件で集計を行い、データの個数を表示させたいと考えてます。 対処方法をご教示下さい。 <例>     列A    列B   列C  列D 1 注文番号 メーカ名 タイプ  購入日 2  123     NEC   NOTE  2010/1 3  123     NEC   NOTE  2010/1 4  123     NEC   DESK  2010/1 5  456     HP    NOTE  2010/2 6  456     HP    NOTE  2010/2 上記の表を列A~列Dの集計により     列A    列B   列C  列D  列E 1 注文番号 メーカ名 タイプ  購入日 個数 2  123     NEC   NOTE  2010/1  2 3  123     NEC   DESK  2010/1  1 4  456     HP    NOTE  2010/2  2 列Eにデータの個数を表示 尚、集計の条件としては、列Aの注文番号が最優先の集計キー、次いで列B、列C、列Dとなります。 又、行数は約1500行前後です。 宜しくお願い致します。

  • Excel関数 2つの条件で集計するには?

    エクセル関数についての質問があります。 A列に赤・黄・青のいずれか B列に○・△・□のいずれか C列に数値のデータが入力されているとします。 このとき、A列が赤且つB列が○となっている 数値を集計する関数もしくは方法はありますか? SUMIFでは条件は一つしか使えませんよね? 現在はC列の数値を、B列が○のときはD列に B列が△のときはE列に、B列が□のときはF列に 表示させるようにし、B列をキーにD~F列の数値 をそれぞれ集計しています。 件数が多いときはめんどうなので、いい方法が ありましたら、教えてください。 よろしくお願いします。

  • Excelの集計機能

    エクセルの集計機能についてお聞きしたいと思います。 A~Fまで300行ほど空白セルなしで作成したシートがあります。 (1行目は項目名としています) そこから操作手順として、 (1)F列を昇順で並び替え (2)集計機能にて、グループの基準:B列、集計の方法:合計、集計するフィールド:E列、他のオプションは無効として実行 (3)同じく集計にて、グループの基準のみC列に変更して実行 (4)同じく集計にて、グループの基準のみD列に変更して実行 すると、(2)の時点で上部に総計がありその下に集計があり、集計の下に集計がありさらに下に集計がある、入れ子になってぶら下がる状態になるはずなんです。 ところが私の環境では最上部の集計のみ上側に入れ子になってしまいます。 わかりづらいかと思いますが、 A列|B列|C列|D列|E列|F列|   |総計|  |  |  |  |   |(2) |  |  |  |  |   |  |(3) |  |  |  |   |  |  |(4) |  |  | とならなければならないのに、 A列|B列|C列|D列|E列|F列|   |  |  |(4) |  |  |   |  |(3) |  |  |  |   |総計|  |  |  |  |   |(2) |  |  |  |  | となってしまうのです。 Microsoftのホームページにてレジストリ(Excel97Subtotals)を追加すると修正されるとあったので実施してみました。 ですが2番目の集計以降は正常なのですが、最上部だけやはり上側に入れ子されているような状態です。 Excelのバグなのでしょうか? 環境は、 WindowsXP SP2 Office2003 SP2 です。 おわかりになられる方がいらっしゃればご助力お願いいたします。

  • エクセルでの条件式等による数値集計

    エクセルの条件式&集計についての質問です。 A列に売上年月日 C~F列には1行目は仕入年月日、2行目以降は仕入額が入っています。C~F列は同じ年月日は発生しません。 A列が07/2/28で商品1の場合、A列と同じ年月日のD列までの仕入額合計”30”をG列に表示させたいのです。 G列にどのような計算式を入力すればよいのでしょうか? マクロなどを使用せずに処理したいのですが…宜しくお願い致します。 A:売上日 B:品名 C:07/1/31 D:07/2/28 E:07/3/31 F:07/4/30 G:計 07/2/28 商品1    10     20      15       5    30  07/2/28 商品2    60     90      20       70   150 07/3/31 商品3    20     50      10       90    80 07/4/30 商品4    0     200      10       80   290

  • エクセルの日にちごとのアンケート集計の関数について

    シート名(アンケート) A列:日付 (12/1 12/2 など) F列:分類 (電話 パソコン  など) シート名(合計) A13には 12/1と記入されており 13行は 12/1の分類の集計を入力致します。 14行は 12/2の分類の集計を入力致します。 その際、13行のE(E13)には12/1の 電話の集計     13行のF(F13)には12/1の パソコンの集計     14行のE(E14)には12/2の 電話の集計 を入力する場合、どのような関数を使えばよろしいのでしょうか。 よろしくお願いします。  アンケートと合計は 同じBOOKのエクセルの中にあります。 ご教示いただけますでしょうか。

  • Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです

    条件4項目 日付&単位&単価&区分(A列、C列、D列、F列)の一致するもののB列及びE列を集計して別シートに書き出したいのです。  sheet1 A   B   C   D   E   F 日付  数   単位  単価  計   区分 3/12  2    人  10000 20000  通常 3/12  1    人  10000 10000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 このような表を sheet2 A   B   C   D   E   F 日付 数 単位 単価 計 区分 3/12  3    人  10000 30000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 のようにまとめたいのです。 Dictionaryを用い、A列、C列、D列、F列を一旦結合しkeyとし、同じものが登録されていたら、itemとしてB列及びE列の値を加算させて、登録件数分を書き出しという流れでやりたいのですが、出来ません。 助けて下さい。お願いします。

  • 日付と商品名の2つの条件で集計

    A列に商品名(2~10行)、B列に金額(2~10行)、C列に日付(2~10行)の表で日付範囲条件と商品名の条件の両方満足する行の金額を集計したいのですが方法を教えて下さい。日付の集計はSUM,DATE関数で、商品名のみの集計はSUMIF関数で求めることができますが両方の条件式がわかりません。よろしくお願いします。

  • Excel2003の集計および印刷について

    いつもお世話になっております。 新年早々ですが、今回はExcelについて質問させてもらいます。 現在、とあるデータの集計を行い、印刷を行う方法を考えていますが、あまり詳しくないので困っています。 何かいい方法があればと思い投稿しました。 まずExcelファイルに「入力用シート」と「出力用シート」の二つのシートがあります。 「入力用シート」には、 C1セル、D1セル、E1セル、F1セル C2セル、E2セル、F2セル に表題や番号などを入力します。 また、下記のようにA1セルとB1セルから下へずっとデータを入力します。データ量は多いときは1000行ぐらいです。 例) 1000   5 1200   2 900    10 800    2 1000   1 2400   3 あとフォームのボタンを作りこれを押すと、「出力用シート」にC1,D1,…F2までのセルをそのままコピーし、A1、B1から下へ入力されているデータのみを集計し表示を行いたいと思ってます。 集計の条件はA列ごとに集計し降順で表示です。 結果として「出力用シート」には 以下のように表示したいと思ってます。 あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 2400   3 1200   2 1000   6 900   10 800    2 ですが、A列とB列に入力するデータが多くなった際、印刷すると右半分が白紙の状態で、できれば右半分にもと思ってます。つまり1枚に2ページ分印刷と言うことです。 データは1枚に30行ぐらいで左半分と右半分で60件ぐらい表示。 (文字を大きく表示させるため) それ以上になると2枚目に1枚目と同じように1行目2行目は1枚目と同じで印刷できればと。 例) -----1枚目----- あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 2400    3    440    2      1200    2    430    22 1000    6    415    9 900    10    409    2 800     2    399    8 500     1    395    5 450     3    393    2 -----2枚目----- あいうえお かきくけこ 111111 222222 さしすせそ       333333 444444 391    1     320    2 311    22 説明が長くなりましたが、何卒よろしくお願いします。

専門家に質問してみよう