- ベストアンサー
DATEIF関数の算出結果の合計平均を出す方法
- フィルタをかけて抽出していけば良いのですが、数が大量すぎて手作業では膨大な時間がかかってしまいます。本当に分からなくご質問した次第です。
- 収穫日と購入日から期間を算出し、品名No.毎の期間平均を求めたいです。結果は000101⇒平均期間(0年01ヶ月)、000103⇒平均期間(0年01ヶ月)、000104⇒平均期間(2年10ヶ月)となります。
- E列には=(DATEDIF(D4,C4+1,"Y")+(DATEDIF(D4,C4+1,"YM")=11))&"年"&MOD(DATEDIF(D4,C4+1,"YM")+(DATEDIF(D4,C4+1,"MD")>0),12)&"ヶ月"という関数が入っています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
商品番号がK2セルに入っているなら、以下の式を入力すれば(E列の数式の算出方法に準じた計算)K2セルの平均が算出できます。 この場合、E列は不要で直接平均年月が表示できます。 =INT(SUMPRODUCT(($A$4:$A$1000=K2)*((DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"Y")+(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"YM")=11))*12+MOD(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"YM")+(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"MD")>0),12)))/12/COUNTIF($A$4:$A$1000,K2))&"年"&INT(MOD((SUMPRODUCT(($A$4:$A$1000=K2)*((DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"Y")+(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"YM")=11))*12+MOD(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"YM")+(DATEDIF($D$4:$D$1000,$C$4:$C$1000+1,"MD")>0),12)))/12/COUNTIF($A$4:$A$1000,K2)),1)*12)&"ヵ月"
その他の回答 (2)
- mt2008
- ベストアンサー率52% (885/1701)
G2:G4に品名NOを入れておきます。 で、H2に以下を…… =INT(SUMPRODUCT((DATEDIF(D$2:D$23,C$2:C$23,"M")+1)*(A$2:A$23=G2))/COUNTIF(A$2:A$23,G2)/12)&"年"&INT(MOD(SUMPRODUCT((DATEDIF(D$2:D$23,C$2:C$23,"M")+1)*(A$2:A$23=G2))/COUNTIF(A$2:A$23,G2),12))&"ヶ月" なお、平均で小数点以下の月数が出た場合は切捨てています。
お礼
画像まで添付して頂きご丁寧な回答ありがとうございます。 この方法も今後活かしていきたいと思います。 本当にありがとうございました!!
- shinkami
- ベストアンサー率43% (179/411)
エクセルでは日付はシリアルNo.という整数です。(時分秒は少数) 日付どうしの引き算で期間が求められます。 求めた結果は表示形式を数値にすると日数で、 日付にすると年月日の表示になりますが 大の月、小の月で紛らわしいですね
お礼
私も最初その方法で行ったのですが○○年12ヶ月という変な表示になってしまったりしたので、諦めました; ご回答ありがとうございます。
お礼
ありがとうございました。 提出する資料が無事作成出来ました。 私にはまだ解読出来ませんが1つ1つ解読して別の場面でも活かしていきたいと思います。 本当に助かりましたありがとうございます!!