- ベストアンサー
EXCELで特定範囲の最大値を表示する方法
- EXCELで特定範囲の最大値のみを表示する方法について悩んでいます。
- 毎週日曜に集金する金額を入力し、自動で日ごとの合計値と月ごとの合計値が出るようにしたいです。
- 行2の日付が月の最終日曜日の列にのみ合計を表示する方法を教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.3です! たびたびごめんなさい。 前回書き忘れたのですが、50行目が各列の合計となっているのであれば A51セルを =IF(MONTH(A2)=MONTH(B2),"",SUMPRODUCT((MONTH($A2:A2)=MONTH(A2))*($A50:A50))) という数式にしてオートフィルで列方向にコピー! で大丈夫だと思います。 ※ SUMPRODUCT関数はデータ量が多くなった場合、PCにかなりの負担をかけますので、 50行目に SUM関数が入っているのであればこちらの方をオススメします。 何度も失礼しました。m(_ _)m
その他の回答 (5)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答No.2です。 考えてみました処、 >表示するのは、行2の日付がその月の最終日曜日の列 というよりも、入力されている日付の中で最も月末に近い日付の列に、 >月ごとの合計値が出るようにしたい という事だと思いました。 もし、そうだとしますと、A51セルに入力する関数を、次の様な関数としますと、日曜日以外の日付が入力されている場合においても、「入力されている日付の中で、その月の最終日」の列に、月ごとの合計値が表示されます。(例え日付が順不同に入力されている場合でも、月末に最も近い日付の列に表示されます) =IF(ISNUMBER(1/DAY(A$3)),IF(A$3=SMALL($3:$3,COUNTIF($3:$3,"<"&DATE(YEAR(A$3),MONTH(A$3)+1,1))),SUMIF($3:$3,"<"&DATE(YEAR(A$3),MONTH(A$3)+1,1),$50:$50)-SUMIF($3:$3,"<"&DATE(YEAR(A$3),MONTH(A$3),1),$50:$50),""),"")
- MackyNo1
- ベストアンサー率53% (1521/2850)
A列から1年分の日付が入力されているなら、A51セルに以下の式を入力して右方向にオートフィルすればご希望の表示ができます。 =IF(MONTH(A2)=MONTH(B2),"",SUMPRODUCT((MONTH($A$2:$AZ$2)=MONTH(A2))*$A$50:$AZ$50))
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 A51セルに =IF(MONTH(A2)=MONTH(B2),"",SUMPRODUCT((MONTH($A2:A2)=MONTH(A2))*($A4:A49))) という数式を入れ列方向にオートフィルでコピーではどうでしょうか? SUMPRODUCT関数内で 「$」マークの有無に注意してください。m(_ _)m
- kagakusuki
- ベストアンサー率51% (2610/5101)
>行3:日曜日の日付が入っている(2013/1/6,2013/1/13,・・・)。 >行50:各列の行4~行49の合計値(sum関数) となっているのでしたら、次の様な方法となります。 まず、A51セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/DAY(A$3)),IF(A$3=DATE(YEAR(A$3),MONTH(A$3)+1,1)-WEEKDAY(DATE(YEAR(A$3),MONTH(A$3)+1,1),2),SUMIF($3:$3,"<"&DATE(YEAR(A$3),MONTH(A$3)+1,1),$50:$50)-SUMIF($3:$3,"<"&DATE(YEAR(A$3),MONTH(A$3),1),$50:$50),""),"") そして、A51セルをコピーして、51行目においてA51よりも右側にあるセルに貼り付けて下さい。 以上です。
- web2525
- ベストアンサー率42% (1219/2850)
データがB列からスタート、A1セルが空欄が条件ですが =IF(MONTH(F1)=MONTH(E1),"",SUM(OFFSET(E50,0,0,1,-4-(MONTH(A1)=MONTH(E1))))) E51セルに上記式を貼付け、横方向へコピー 1ヶ月に日曜は最低4回、最大5回あります 1月の第3週まで(D51セル)までは無条件で空欄なので、計算が必要なのはE51以降