• ベストアンサー

指定した年月のデータを合計

年月日(A列)   製品(B列)   金額(C列) 2012/2/1      A        10 2013/5/25     B         20 2012/3/2      C         30 2012/3/16      C         40   (セルE1)に2012とか2013/5とか手動で入力すると(セルE2)に合計額が出るようにしたいです     2012→80 2013→20 2013/5→20 2012/3→70 セルE1に入れるべき関数をお教えくださいませ。

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

  • ベストアンサー
回答No.8

同一セルに「2012」と「2013/5」の 2 パターンで入力したいとのことなのですが、1 つのセルに年・月という属性の異なるデータを入れたり入れなかったり、というのでは、難しくなってしまいます。不可能ということはないはずですが。 それよりも、お勧めなのはやはり、年と月のセルを分けることです。年月の指定の仕方がシンプルで、分かりやすいシステムになります。 ★月のセルを未入力にすれば、自動的に 1 年間での合計が算出されるような数式にしておきます。 E1 2012  など G1 3    など、あるいは未入力 E5 =sumifs(c:c,a:a,">"&date(e1,1+max(,g1-1),0),a:a,"<"&date(e1+(g1=0),g1+1,1))       …… Excel2007 以後   あるいは   =sumif(a:a,">"&date(e1,1+max(,g1-1),0),c:c)-sumif(a:a,">"&date(e1+(g1=0),g1+1,0),c:c)   ……全バージョン A・C 列の「表外の」行に関係ない数値を入力すると、数式が誤った結果を算出する可能性があります。その場合は、「a:a」→「a2:a1000」、「c:c」→「c2:c1000」といった具合に、行番号で合計する範囲を指定する形にセル参照を書き換えます。 E5 の 2 式をよく見比べると、不等号の向きと、2 つ目の DATE 関数の第 3 引数が微妙に異なっていますので、ご注意。 年月のセルの書式は、上式の場合、「文字列」も含め、何に設定しても構いません。 なお「年のみを入力した場合の合計」と「年月を入力した場合の合計」を、別のセルで求めることにしても構わないという場合は、No.4 さんのように、更に易しい数式で計算することができます。

noname#241383
質問者

お礼

図つきで、とても分かりやすかったです。 重宝しそうです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.9

>その辺の適切な回答もしていただけるかなと甘えていました・・ 文字列の書式にしておくことで、2012でも2013/5でも両方その通りに記入できます、とお話ししてありますが? >えくせる2010 たとえばE2には =SUMIFS(C:C,A:A,">="&(EDATE(E1&"/1",0)),A:A,"<"&EDATE(E1&"/1",IF(E1-2100<0,12,1))) などのように入れておきます。

noname#241383
質問者

お礼

関数の中の2100の意味だけ教えていただけませんか?

noname#241383
質問者

補足

書き方が悪かったです。 最初の質問で甘えていました。 だけども、そのように回答していただいたので大変ありがたいということでした。 いろんなやり方があることにびっくりしています。 皆様には感謝です。

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.7

次のような関数をE2セルに入力することでE1セルが文字列の入力であるか標準のままの入力であるかにかかわらず合計額が表示されます。 =IF(YEAR(E1)<1920,SUMPRODUCT((YEAR(A1:A10)=E1*1)*(C1:C10)),SUMPRODUCT((YEAR(A1:A10)=YEAR(E1))*(MONTH(A1:A10)=MONTH(E1))*(C1:C10))) 上式ではYEAR(E1)<1920となっていますがこれは例えば2012と入力された場合にはシリアル値で2012であり、1905/7/4と日付の表示ではなります。したがって2027年以前のデータまでは対応できます。また、A列に1920年以前の日付が有る場合には対応できません。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 もし、E1セルの書式設定が文字列となっている場合には、次の様な関数となります。 =IF(E1="","",IF(ISNUMBER((E1&"年"&"1月")+0),SUMIF($A:$A,"<"&DATE(E1+1,1,1),$C:$C)-SUMIF($A:$A,"<"&(E1&"/1/1")+0,$C:$C),IF(ISNUMBER((E1&"/28")+0),SUMIF($A:$A,"<"&DATE(YEAR(E1+0),MONTH(E1+0)+1,1),$C:$C)-SUMIF($A:$A,"<"&(E1&"/1")+0,$C:$C),IF(ISNUMBER(FIND("/",E1)+(E1&" 0:0:1")),SUMIF($A:$A,"="&E1+0,$C:$C),"検索値が正しくありません"))))

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 「2012とか2013/5とか手動で入力する」セルがE1セルで、合計額を表示するセルがE2セルなのですね?  その場合、E2セルに入力する関数を次の様なものにされると宜しいかと思います。 =IF(E1="","",IF(ISNUMBER(MATCH(CELL("format",E1),{"D1","D2","G"},0)/DAY(E1)/($E1=ABS(INT($E1)))),CHOOSE(MATCH(CELL("format",E1),{"D1","D2","G"},0),SUMIF($A:$A,E1,$C:$C),SUMIF($A:$A,"<"&DATE(YEAR(E1),MONTH(E1)+1,1),$C:$C)-SUMIF($A:$A,"<"&(TEXT(E1,"yyyy/m")+0),$C:$C),SUMIF($A:$A,"<"&DATE(E1+1,1,1),$C:$C)-SUMIF($A:$A,"<"&(E1&"/1/1")+0,$C:$C)),"検索値が正しくありません"))  尚、上記の関数は、E1セルの書式が、年のみを表示する様になっているのか、年と月のみを表示する様になっているのか、或いは、年月日を表示する様になっているのかによって、どの様な期間を集計対象にするのかを決めていますので、E1セルの書式設定を文字列にしてしまうと、上記の関数は正常に動作出来なくなります。  それから、2013/5の様に、年/月の形式でセルに入力しますと、May-13と表示されますが、そのままでも、2013/5の月の合計額を表示する事が出来ます。  因みに、セルの書式設定を[ユーザー定義]のyyyy/mにしますと、2013/5の形式で表示されます。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.4

添付図参照 年だけのときは、セル E2 に4桁の西暦年を入力します。 年月の場合は、yyyy/m という書式を設定したセル E4 に 2012/3 のように入力(この場合は、2013/3/1 のように、当該年月の1日付けの年月日が入力されることに注)します。 G2: =YEAR(A2)=E$2 F2: =DSUM(A1:C5,3,G1:G2) G4: =DATE(YEAR(A2),MONTH(A2),1)=E$4 F4: =DSUM(A1:C5,3,G3:G4)

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

ムリヤリやるとこうなる、、、 F列:年(A列データ) F2: =IF($A2="","",YEAR($A2)) G列:年月(月初日:A列データ) G2: =IF($A2="","",YEAR($A2)&"/"&MONTH($A2)&"/"&1) F2、G2、まとめて下にコピー E1:集計のキー、年月または年(書式:YYYY/m) 年指定の場合は、文字列として入力(頭に ') E2: =SUMIF($F2:$F99,$E$1,$C2:$C99)+SUMIF($G2:$G99,$E$1,$C2:$C99)

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>(セルE1)に2012とか2013/5とか手動で入力する ふつーのエクセルで試しにそれをやってみると、すっかり意図と違う結果になって慌てる羽目になります。 まず手を動かして、実際にE1セルに2012とか2013/5とか、また2013とか記入してください。 あなたが思ってたように使うため、E1セルの書式設定の表示形式を必ず「文字列」の設定にしておきます。 さて本番。 エクセル2007以降ではもっと綺麗な関数が使えますが、あなたが普段使うエクセルのバージョンも書いてないので、全てのエクセルで使えるもっと重たい数式にします。 たとえば =IF(E1="","",SUMPRODUCT((TEXT(A1:A1000,"yyyy"&IF(E1-2100<0,"","/m"))=E1)*1,C1:C1000))

noname#241383
質問者

補足

すいません。 えくせる2010です。 たしかに、2012/5だと大丈夫ですが、2012だと文字列にしておかないとだめですよね。 その辺の適切な回答もしていただけるかなと甘えていました・・

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

2012と年だけを入力した場合は以下の式になります。 =SUMPRODUCT((YEAR($A$2:$A$10)=E2)*$C$2:$C$10) 2013/5と年月を入力した場合は以下の式になります。 =SUMPRODUCT((YEAR($A$2:$A$10)=YEAR(E2))*(MONTH($A$2:$A$10)=MONTH(E2))*$C$2:$C$10) 後者の場合は、セルの書式設定で表示形式を「ユーザー定義」にして「yyyy/m」と入力して、そのセルに「2013/5」のように入力してください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで条件に合うデータをピックアップして合計を求めたい

    下記のような条件で合計を求めたいのですが、 SUM関数やSUMIF関数では、求めている合計が得られません。 例) 行/列 A   B    C  1|  No. 金額   氏名 2|  1  200,000  A 3|  1  200,000  B 4|  1  200,000  C 5|  2  150,000  A 6|  2  150,000  D 7|  3  180,000  B 8|  3  180,000  D 9|  3  180,000  E 10| 小計  上記のようなデータがあります。 B列には、Noごとに、それぞれ同じ金額が重複して入力してあります。 ここから、Noの最初の金額である200,000+150,000+180,000=530,000 という合計を10行目に求めたいのです。 現在は、自分でNoを確認しながら、その都度、 合計したいセルを選択して合計を求めているのですが、 データ数が多いため、何か別の方法がないかと思案しております。 どなたか、アドバイスの程、宜しくお願いします。

  • (エクセル)数値だけ合計したい

    複数のセルに入力されている数値だけを抽出し、合計したいと思います。   A     B    C    D    E    F    G 1 合計金額 金額1  金額1理由 金額2  金額2理由 金額3  金額3理由 2      1000円   菓子  3 1500円  1000円   菓子   500円   飲料 4 1520円  1000円   菓子   500円   飲料   20円   消費税 以上のようにA列に合計金額を計算させる数式を考えています。 (ルール) ・B列とC列、D列とE列、F列とG列はセットです。例えば、B列には入力されているが、C列は空白ということはない ・B列とC列→D列とE列→F列とG列の順に入力されていく ・2行目、3行目のように、常に金額が3つとも入力されているとは限らない ・金額が入力されているB列、D列、F列には、「○○円」と「円」も一緒に入力されている (やりたいこと) A列に合計金額を反映させないのですが、以下のように規制したいです (1)2行目のように、金額が1つだけの場合(B列とC列しか入力されていない場合)は、合計金額は空白セルにする (2)3行目、4行目のように、金額が2つ以上の場合(D列とE列や、F列とG列にも入力されている場合)は、合計金額を反映させる (3)合計金額は「○○円」と「円」も一緒に反映させる (考えたこと) B列の金額とB列+D列+F列の合計を比較し、同じならA列は空白、違う場合はB列+D列+F列の合計をA列に反映させるようIF関数を使えばいいのではないか、と考えました。 そこで、まずB列+D列+F列の合計を出す関数を作ってみたのですが、うまくいきませんでした。 =SUM(SUBSTITUTE(B2,"円","")*1,SUBSTITUTE(D2,"円","")*1,SUBSTITUTE(F2,"円","")*1) とすると、金額が3つとも入力されていればいいですが、一つでも空白セルがあると、#VALUE!とエラーになってしまいます。 SUMPRODUCTを使用してできるかと思いましたが、同じ結果でした。 どうすれば、思っているようになるのでしょうか。 ご存知の方がいましたら教えてください。 よろしくお願いします。

  • Excelで日付が入っていたら金額を合計したい

    Excel2007を使用しています。 支払い報告書をエクセルで作ろうとしています。 D列に金額を入れ E列に実際に支払った日付(10/18と入力します)を入力すると セルB2の支払済合計額に合計金額が入るようにしたいです。 またE列に日付を入力せずにいると セルC2の支払い予定額が入るようにしたいです。 なおE列には日付以外にキャンセルとか支払い不要とか 日付以外も入るので日付が入った場合のみ支払合計額に、 空白の時は支払い予定額に それ以外の場合はどこにも加算されないようにというのが希望です。 SUMIFなどを使って自分なりに関数を作ってみましたが イマイチ出来ませんでした。 よろしくお願いします。

  • エクセルである品名だけを抽出してその合計を算出したい

    エクセル初心者です。よろしくお願いします。 会社の表なんですが、A列に日付、B列に製品名、C列に数量、D列に単価、E列に金額の表があります。 B列の製品名には何種類もの製品があり、(例えばですが)プリンを抽出してそのプリンだけの合計金額を所定のセルに入力したいと思っています。 自分なりに色々関数を調べてみたのですがわかりません。 そのような計算式はないのでしょうか?教えて下さい。 お願いします。。m(_ _)m

  • セル結合部の合計額

    A列に年月日、B列に氏名、C列に金額の表が有ります。 この表をマクロでB列、氏名で並べ替えをし、同名をセル結合しています。セル結合されているのがいくつも有ります。このセル結合された部分のC列の各々の金額の合計をD列に表示する記述を教えてください。 例えば、Aさんでセル結合されたC列のデータが3個有れば三個の合計額をD列に表示するものです。よろしくお願いします。

  • エクセルで「飛び飛びのデータ」から合計を出す数式はありますか?

    どなたか教えてください A列・B列に下記のデータが入っており「予定金額の合計」をL48セルに表示したいのです。 ただ、途中の行に「結合セル」があり文字が入っているので縦計をとる方法から色々考え たのですがうまくいきませんでした・・・。 予定額の右側の合計を出す関数を教えてください(ponta_024) [ A列 ][ B列 ] 予定金額  100 予定金額  150 一覧参照  65,000 予定金額  170 一覧参照  12,800 予定金額  120    ・    ・ よろしくお願いします

  • エクセル2000  合計するセルの個数を任意に変更

    2つの疑問が生じました。ご存知の方がいらっしゃいましたら、お時間の許す方にご回答をお願いします。 【1】 B1からB1000、C1からC1000までにデータが入力されているとします。 A1に3を入力するとD1にB1以下3個のセルの合計 A1に4を入力するとD1にB1以下4個のセルの合計 ・・・・・・・・・・ A1にxを入力するとD1にB1以下x個のセルの合計を表示したいのですが、このときのD1の関数式。 【2】 A1に3を入力するとE1に〔B1以下3個のセル〕と〔C1以下3個のセル〕の合計 A1に4を入力するとE1に〔B1以下4個のセル〕と〔C1以下4個のセル〕の合計 ・・・・・・・・・・・・ A1にxを入力するとE1に〔B1以下x個のセル〕と〔C1以下x個のセル〕の合計を表示したいのですが、このときのE1の関数式。 以上似たような質問なのですが、よろしくお願いいたします。

  • エクセルで合計を簡単に出すための方法を教えてください

       |  A  |  B |C| D  |  E   | --+---+---+-+--+----+  1 |     |    金 額    |  時間計| --|名前  +---+-+--+----+    2 |     |○:○○|~|0:00| ○:○○| --+---+--------+----+  3 |     |    金 額    |  時間計| --|名前  +---+-+--+----+    4 |     |○:○○|~|0:00| ○:○○| --+---+--------+----+  ・ |                           |  ・ |       (省   略)            |     ・ |                           |    ・ |                           | --+----+-------+----+ 50 | 合計  |   金額合計  |時間合計| ----------------------------- わかりづらくてすいません。B2-D2=E2となるような式を入力してあり、E2の時間の利用金額がB1という表なんですが、50行目で 金額合計を出す時に=B1+B3+B5+B7+・・・ 時間合計を出す時に=E2+E4+E6+E8+・・・ と入力する以外方法はないんでしょうか?書いてはいませんが、Fの列は時間は出さずに金額だけを表示するのでSUM(F1:F49)で金額合計が出ます。いい方法があれば教えてください。

  • 入力した合計数値を振り分けたい

    関数とかマクロなど理解していない初心者でエクセル2003を使用しいます。 例えば 1Aのセルに1~10個(単価50円)と入力済 2Aのセルに11~20個(単価40円)と入力済 3Aのセルに21~30個(単価30円)と入力済 1B~3Bのセルに個数欄未入力 1C~3Cのセルに金額自動計算式入力済 4Bのセルに合計個数欄未入力 4Cのセルに合計金額自動計算式入力済 とした場合、例えば4Bの合計個数に29個と入力すると、自動的に1Bに10個、2Bに10個、3Bに9個と個数が振り分けられる様にしたいのですが、できるのでしょうか?

  • 対象の年月の数値を選び出して合計したい

    下記のようなセルがあるとします。 A1から縦に年月日、B1から縦に数値が入ってます。  A             B       C 2003年1月12日  19278       2003年1月13日   23343 2003年1月14日  12222 2003年1月16日  34632 2003年1月18日  33335   :   : 2008年6月10日  98756 2008年6月11日  59478 2008年6月12日  14218   :   : 上記より、例えば2007年8月の合計をC1に求めたいとき、C1に入れる関数式が判りません。 力技で、sum(A●●:A○○)の様に、●●に月始め、○○に月の終わりのセル値を書けば出来るのは判りますが、全ての月毎に合計を求めたいので大変な作業になります。 実際には16年分やらないといけないので。。(汗 出来れば応用として、年毎の合計も出したいです。 ご教授よろしくお願いします。

専門家に質問してみよう