こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

EXCEL関数がよく分からないのです…

日付 A   B  C   D
2/1  100  10  90  90
2/2  80  20  60  75
2/3  140  20  120  90
2/4   90  30   60   82.5

上の表で、C=A-Bです。
Dは、Cの累計を、相当する日数で割ったものです(2/3までの累計なら3で割り、2/4までの累計は4で割る、という具合に…)。
このDをEXCELの関数を使って算出できるようにしたいのですが、どうすればよいのでしょうか?
尚、この表は一か月単位で作る予定です。
また、C列は表示の必要がなく、A,B,D だけの表の方が好都合です。

投稿日時 - 2016-01-27 17:17:11

QNo.9117948

困ってます

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

そんなに変な関数とか使わなくても
添付図:
D2
=IF(COUNT(B2:C2)=2,(SUM(B$2:B2)-SUM(C$2:C2))/COUNT(A$2:A2),"")
以下コピー

ぐらいでいいです。
既出回答でも指摘されていますが、「相当する日数で割った」の日数の意味が曖昧ですね。

投稿日時 - 2016-01-27 23:05:40

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:11:17

ANo.7

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(8)

ANo.8

E2: =SUM(E1,B2-C2)/ROW(A1)

投稿日時 - 2016-01-28 00:27:56

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:10:40

ANo.6

添付画像参照
D2式
=IF(AND(B2="",C2=""),"",SUMPRODUCT(($B$2:B2)-($C$2:C2))/ROW(A1))
row関数で行番号を取得します。a1の行番号は1になります。数式を下方へコピーすると一つづつ行番号が増えます。

余談
仮に月集計する場合はB,C列はsum関数で良いですが。平均値は最終データの取得が必要
D33式
=INDEX(D2:D32,COUNT(D2:D32))

投稿日時 - 2016-01-27 18:58:12

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:11:32

ANo.5

>相当する日数
日付が跳んだ場合の数え方で変わりますね。

・式の行の日付で割る場合
=SUM($B$2:$B2,-$C$2:$C2)/DAY($A2)

・A2の日付からの経過日数で割る場合
=SUM($B$2:$B2,-$C$2:$C2)/($A2-$A$2+1)

・日付が記録された日数で割る場合
=SUM($B$2:$B2,-$C$2:$C2)/COUNTA($A$2:$A2)

投稿日時 - 2016-01-27 18:04:48

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:11:50

ANo.4

>Dは、Cの累計を、相当する日数で割ったものです(2/3までの累計なら3で割り、2/4までの累計は4で割る、という具合に…)。

との事ですが、「相当する日数」を数え始める最初の日は必ずその月の月初めの日である1日(ついたち)なのでしょうか?
 それとも一か月単位の一か月とは15日〆の一ヶ月である16日~翌月の15日までの1ヶ月であり、「相当する日数」を数え始める最初の日が16日という事もあるのでしょうか?
 又、「相当する日数」を数え始める最初の日が月によって違っているという事もあるのでしょうか?

 今仮に、2/1等の「『相当する日数』を数え始める最初の日」が必ず入力されているセルがあり、そのセルのセル番号がA2セルであり、各日付はA列に入力されていて、同様にAの値はB列に、Bの値はC列にそれぞれ入力されていて、Dの結果はD列に表示させる様にするものとした場合に関して回答致します。

 まず、D2セルに次の関数を入力して下さい。

=IF(AND($A$2>=1,$A$2<"9999/12/31"+1,$A2>=1,$A2<"9999/12/31"+1),(SUM($B$2:$B2)-SUM($C$2:$C2))/(INT($A2)-INT($A$2)+1),"")

 次に、D2セルをコピーして、D3以下に貼り付けて下さい。


 これでD列のセルにDの結果が表示される様になります。

投稿日時 - 2016-01-27 18:03:15

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:12:01

ANo.3

>このDをEXCELの関数を使って算出できるようにしたいのですが、どうすればよいのでしょうか?
紛らわしい質問ですね。
提示のテーブルでは1行目を項目名と解釈しますと項目のDはE列になります。
E2=(SUM(B$2:B2)-SUM(C$2:C2))/(A2-A$2+1)

投稿日時 - 2016-01-27 17:42:15

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:12:18

ANo.2

すみません、セルの位置を間違えました!
ご質問の入力位置に沿って言うならば、

=(SUM($A$2:A2)-SUM($B$2:B2))/COUNTA($A$2:A2)

でした。ごめんなさいm(_ _)m

投稿日時 - 2016-01-27 17:33:16

お礼

早速ご返事を頂きありがとうございました。
大変参考になりました。

投稿日時 - 2016-01-28 11:12:35

ANo.1

セルD2に以下のように打ち込んで、オートフィルで下まで伸ばせは計算できるかと思います。

=(SUM($B$2:B2)-SUM($C$2:C2))/COUNTA($B$2:B2)

投稿日時 - 2016-01-27 17:31:10

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-