- ベストアンサー
■[EXCEL]こんな関数教えて
100人の2年間の月別売上データがあり、一人毎の任意の期間の売上合計を出す関数を教えてください。具体的には下記のような表です 期間(12ケ月) A年月日~B年月日 1月 2月 3月 -----→2年分のデータ A *** *** ** ** ** ** ** ** B *** *** ** ** ** ** ** ** C *** *** ** ** ** ** ** ** D *** *** ** ** ** ** ** ** ↓ 100人 期間の始まりAは人によりまちまちなのです。 ずっと考えているのですが私の悪い頭ではわかりません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
見出しの下に行を挿入し、行の名前を入力します 期間とデータの項目名は同じ形で年月を入力します 開始 終了 2006年1月 2006年2月 2006年3月 2006年4月 006年5月 d e f g h 2006年1月 2006年4月 1 2 3 4 5 2006年3月 2006年6月 1 2 3 4 5 A君の合計欄にしたの式を入力し =SUM(INDIRECT(HLOOKUP(B3,$D$1:$I$2,2) & ROW(B3)):INDIRECT(HLOOKUP(C3,$D$1:$I$2,2) & ROW(C3))) 下へずっとコピーします
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7417/18945)
__A B C D E F........AA 1 06/07/01 2 氏名 開始 終了 1月目 2月目 3月目....24月目 3 A 06/01/01.... 06/1月 2月 3月 4月 5月 6月 7月.... 4 B 06/03/01.... 06/3月 4月 5月 6月 7月.... 5 C 06/04/01.... 06/4月 5月 6月 7月.... 6 D 06/07/01.... 06/7月 8月 9月.... 上記で06/7月を集計とかですか? =SUMPRODUCT((COLUMN($D$3:$AA$6)-4=DATEDIF($B$3:$B$6,MAX($B$3:$B$6,$A$1),"M"))*($D$3:$AA$6)) ※但し、開始日とA1は1日でないと正常に計算しません。
お礼
難しい関数を教えていただきありがとうございました。参考にさせていただきます。
- ham_kamo
- ベストアンサー率55% (659/1197)
売上げ合計はどこに表示しますか?あと、基準となる年をどこかに埋め込んでおくとして、 |A列 B列 C列 D列 E列 F列・・・Q列・・・AB列 ------------------------------- 1行| 2006 2007 2行|名前 最初 最後 合計 1月 2月・・・1月・・・12月 3行|A 月日 月日 数値 数値・・・・・・・・・・・ 4行|B 月日 月日 数値 数値・・・・・・・・・・・ : という感じのレイアウトを仮定して、(表示するとずれて見えるかもしれせんが、E1に2006、E2に1月、Q1に2007、Q2に1月と入っています)D列に期間の合計を出すと仮定すると、たとえばD3には、 =SUM(OFFSET($E3:$AB3,0,MONTH($B3)-1+(YEAR($B3)-$E$1)*12,1,MONTH($C3)+(YEAR($C3)-$E$1)*12-(MONTH($B3)+(YEAR($B3)-$E$1)*12)+1)) という式で、B列とC列で指定した範囲の合計が求められます。後はD3を下にコピーしてください。
お礼
難しい関数をすぐに作っていただき有難うございました。EXCELの達人ですね。感心しました。
- 1936masa
- ベストアンサー率21% (10/46)
>一人毎の任意の期間の売上合計を出す関数 下記URLの応用で解決できませんか?。
- nobu555
- ベストアンサー率45% (158/345)
合計は、 =SUM() こんなのでよろしいでしょうか。
お礼
CHRONOS_0さん有難うございました。こんな難しい関数をどのようにしたら作れるのでしょうか?頭が良いのですねえ。私の悩みがすっかり解決出来ました。お礼申し上げます。