• ベストアンサー

CHOOSE関数でインデックスを可変にした場合の値の変更

只今、年間集計の為にExcelで表を作っているのですが 例えば今年度の売上で1月~12月の項目があったとして 5月が年度初めなので =SUM(今年度(例えば今でしたら5月~8月の合計)の売上合計)/CHOOSE(MONTH(TODAY()),5,6,7,8,9,10,11,12,1,2,3,4) という計算式を作ってみました。 このままですとインデックスがMONTH(TODAY()なので値=9が反映されてしまいます。 ですので5=1     6=2     7=3      : 4=12 と、値を定義つける事は出来るのでしょうか? お知恵を賜りたく存じます。 何卒宜しく御願します

  • ns400
  • お礼率6% (1/16)

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

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

> CHOOSE(MONTH(TODAY()),5,6,7,8,9,10,11,12,1,2,3,4) > 今年度(例えば今でしたら5月~8月の合計) 今日が9月なら5~8月のの4ヶ月分、5月なら昨年5月から今年の4月ま での12ヶ月分を計算するんだから、month(today())が1,2,3,4,...の 時の返り値は8,9,10,11,12,1,2,...であるべきでしょう。 choose(month(today()),8,9,10,11,12,1,2,3,4,5,6,7) month(emonth(today(),-5)) で、検証のために9月分や10月分の数値を入れた場合、パソコンのカ レンダーを10月や11月に変更しないとtoday()関数の値が変わりませ んが、そこはちゃんとヤッテますか。 別解として、売上額が0でない月を数えて分母に使う方法もあるんで すが、マジで売上のなかった月があると破綻するんですよね。そこ が大丈夫でしたら、countif(売上の書いてある範囲,"<>0")ってのも 試してみて下さい。

その他の回答 (3)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

>ですので5=1、6=2、7=3・・・・4=1 >と、値を定義つける事は出来るのでしょうか? ◆上のようにするだけなら =MONTH(EOMONTH(TODAY(),-4)) ★EOMONTH関数は、アドイン関数です ★「ツール」→「アドイン」→「分析ツール」にチェックしてから使用してください

ns400
質問者

補足

お答えいただき有難う御座います 早速試してみました。 =SUM(売上合計)/MONTH(EOMONTH(TODAY(),-4)) という形で入れたのですが現在は5~8月分までのデータしか入っていない状態でこの数式を入れると5か月分の平均値が出るようになりました。単純に-5にしてみると正しい平均値が出るのですが 他の月に数字を代入すると全く別物の平均値で無い数値が出てしまいます。 私の説明でわかりにくい点も多々あるでしょうがご指導賜りますよう御願申し上げます。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

エクセルで毎月の複数シート合計から平均値を年間途中の分で出したい>< http://okwave.jp/qa4300623.html 元ログはこちらですよね。 ようは今月が何月であろうとデータの個数を分母にしては?と回答したのですが、 5~8月にデータがあって9月以降にデータがないのか、或いは"0"表示されているのかで混乱しました。 今一つシートの状況が不明なので続けませんでした。

ns400
質問者

補足

お気づき下さり有難う御座います。 現在では9月以降は0が表示されています。 色々ご迷惑おかけしますが宜しくお願いします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

5月を1(ヶ月目)として設定するのであれば =SUM(今年度の売上合計)/(MOD(MONTH(TODAY())+7,12)+1)

ns400
質問者

補足

早速の御回答有難う御座います。 この回答式で行くと =SUM(今年度の売上合計)/(MOD(MONTH(TODAY())+7,12)+1) で9月度に売上が入った場合は正確に表示されました しかし8月度までの場合は =SUM(今年度の売上合計)/(MOD(MONTH(TODAY())+7,12)) で+1を消さなければ正確な平均値が出ません 同様に10月は =SUM(今年度の売上合計)/(MOD(MONTH(TODAY())+7,12)+2) としなければなりません。 こちらの質問の仕方も悪かったのですが 現在の売上合計/消化した月間数 というのを毎回数式に手を入れず行いたいのです ですので現在は =SUM(現在の売上合計)/4(この4は毎月入れ替えてます:消化した月間数のこと) としています。 これを数式をいじる事無く平均値が出るようにしたいのです。 何分無知でご迷惑おかけしますが宜しくお願いします。

関連するQ&A

  • choose 関数について

    ロト6で43個の数値に順位をつけています。 クイックピックを作ったのですが、このPCが選んだ数字の順位合計が知りたいのですが choose 関数は29番目までの数値しか計算できないようで苦戦しております。 43番目までの値が反映されるようにするにはどうすればいいですか?

  • MATCH関数 INDEX関数について教えてくださ

    シート1には1日ごとの売上が入ってる年間の集計表が縦に数年分あります 2011年    1月        2月       …    りんご みかん    りんご  みかん 1日 100   110   1日 200   210              2日 100   110   2日 200   210              3日 100   110   3日 200   210                     月計 3000   3300     6000   6300 2012年    1月        2月         …   りんご みかん    りんご  みかん 1日 300   310   1日 400   410              2日 300   310   2日 400   410              3日 300   310   3日 400   410  月計 9000   9300     12000  12300 シート2には年単位での集計が縦にあります。 2011年    りんご みかん 1月 3000  3300 2月 6000  6300 3月 2012年    りんご  みかん 1月 9000  9300 2月 12000 12300  3月 シート1の月の合計をシート2の月単位に集計に反映させたくINDEX Match関数を試みたのですが上手く行きません… Excel初心者です。どなたか力添えになっていただけると助かります。 説明文がわかりにくかもしれませんが、どうぞよろしくお願いいたします。

  • CHOOSE関数を入れた複数セルの合計が0に

    CHOOSE関数を入れた複数セルをSUM関数で集計しましたが、結果が「0」と表示されてしまいます。集計するためにはどうしたらよいでしょうか? エクセル初心者のため、妙な質問をしていたらすいません。 まず、重さで送料が求められるようにD3には =CHOOSE((K3>=0.3)+(K3>0.55)+(K3>0.65)+(K3>0.75)+(K3>0.85)+(K3>0.95)+(K3>1.05)+(K3>1.3)+(K3>1.55)+(K3>1.75)+(K3>2.05)+(K3>2.55)+(K3>3.05)+(K3>3.55)+(K3>4.05)+(K3>4.55)+(K3>5.05)+(K3>5.55)+(K3>6.05)+(K3>7.05)+(K3>8.05)+(K3>9.05)+(K3>10.05)+(K3>11.05)+(K3>12.05),"1200","1500","1680","1860","2040","2220","2400","2800","3200","3600","4000","4700","5400","6100","6800","7500","8200","8900","9600","10700","11800","12900","14000","15100","16200")といれて、 E3には引かれる手数料15%で計算できるように、E1に0.15といれて =G3*$E$1 そして、G3には合計が求められるように =SUM(C3:D3:E3:F3) といれましたが、0になってしまいます。 試しにG3に関数はいれずに、数字のみ(1230など)いれると、きちんと手数料の計算はできました。 SUMではダメなのかと思って =+C3+D3+E3+F3もいれてみましたが、0とでてしまします。 G3に循環参照があるとのことです。 セルの書式設定?が関係あるのかと思いG3やE3など右クリックして数値を選び「1234」のところを選びましたがダメでした。 どうしたら、数値の合計ができるでしょうか。 画像も添付させていただきました。どうぞよろしくお願いします。

  • CHOOSE関数を入れた複数セルの合計が0に

    CHOOSE関数を入れた複数セルをSUM関数で集計しましたが、結果が「0」と表示されてしまいます。集計するためにはどうしたらよいでしょうか? エクセル初心者のため、妙な質問をしていたらすいません。 まず、重さで送料が求められるようにD3には =CHOOSE((K3>=0.3)+(K3>0.55)+(K3>0.65)+(K3>0.75)+(K3>0.85)+(K3>0.95)+(K3>1.05)+(K3>1.3)+(K3>1.55)+(K3>1.75)+(K3>2.05)+(K3>2.55)+(K3>3.05)+(K3>3.55)+(K3>4.05)+(K3>4.55)+(K3>5.05)+(K3>5.55)+(K3>6.05)+(K3>7.05)+(K3>8.05)+(K3>9.05)+(K3>10.05)+(K3>11.05)+(K3>12.05),"1200","1500","1680","1860","2040","2220","2400","2800","3200","3600","4000","4700","5400","6100","6800","7500","8200","8900","9600","10700","11800","12900","14000","15100","16200")といれて、 E3には引かれる手数料15%で計算できるように、E1に0.15といれて =G3*$E$1 そして、G3には合計が求められるように =SUM(C3:D3:E3:F3) といれましたが、0になってしまいます。 試しにG3に関数はいれずに、数字のみ(1230など)いれると、きちんと手数料の計算はできました。 SUMではダメなのかと思って =+C3+D3+E3+F3もいれてみましたが、0とでてしまします。 G3に循環参照があるとのことです。 セルの書式設定?が関係あるのかと思いG3やE3など右クリックして数値を選び「1234」のところを選びましたがダメでした。 どうしたら、数値の合計ができるでしょうか。 画像も添付させていただきました。どうぞよろしくお願いします。

  • Access クロス集計

    業態_年度_分類_売上_社数 列を分類、売上を値(合計)、sum([売上]) (演算) 業態グループ化 行、社数グループ化 行 業態グループの分類の合計を出すために上のような クロス集計を行いました。 レポート 業態_20年売上_19年売上_18年売上_19年社数 レポートの表示を上のようにしたいのでさらに クロス集計をし年度を列、分類の合計を値、業態グループ としましたが、社数を表示ができません。 何か良い方法は無いでしょうか?

  • Excel INDEX関数ズレて抽出される

    INDEX関数で行列番号取得にMATCH関数を使用したときにズレてしまう。 定例のミーティングの参加表を作成しようとしています。 シートの構成は添付画像の通りです。 Sheet1 定例のミーティングの参加表 巡回Aは月ごとに担当者が変わる。 Sheet2 巡回Aの月別の担当表 巡回Aの担当表を用意して、COUNTIF関数で参加表の氏名が巡回Aのリストに含まれていない場合(カウント0)は空欄にし、0以外の場合、INDEX関数で列番号のところにMATCH関数をネスト、MONTH(TODAY())+1とし、ex. 8月なら翌月の9月に該当する列番号を抽出して巡回Aの出席を月が変わると連動するようにしたいです。 =IF(COUNTIF($B$22:$B$29,$B3)=1,IF(INDEX($C$22:$N$29,MATCH($B3,$B$22:$B$29,0),MATCH(MONTH(TODAY())+1,$C$20:$N$20,0))=0,"",INDEX($C$22:$N$29,MATCH($B3,$B$22:$B$29,0),MATCH(MONTH(TODAY())+1,$C$20:$N$20,0))),"") 職場のExcel2016では列がズレてしまい、抽出ができないです。 Excel365では問題なく抽出ができました。 2016でズレるのは何故でしょうか。 詳しい方居ましたらご教授下さい。 よろしくお願い致します。

  • Access 集計について

    エクセル出力用に年度_売上となっているフィールドを クロス集計クエリで売上(値_先頭)年度_列見出し コード_列見出し のようにしました。 合計の場合は集計を合計にすればよいのですが、 列見出し同士で計算を行う場合(前年比等)どのような関数で計算するのでしょうか? 2006年度売上/2005年度売上*100

  • ExcelのSUM関数の集計範囲を可変にしたい

    ExcelのSUM関数の集計範囲を可変にしたい 1.状況、問題点 商品毎の売上、利益を管理するリスト表が あり、その表の行に対する追加、更新処理を VBAマクロで行っています。 使用環境はExcel2010 リスト表は、帳票としての見易さを考慮して、 同じカテゴリに属する複数の行に対して小計行 を設けカテゴリ別の売上、利益を集計しています カテゴリに属する行範囲に対してSUM関数を使っ ているということです (例1)この表にマクロで行を追加させる際、 あるカテゴリの小計欄で参照している集計 範囲の行の途中に行を挿入する場合は、行 を追加してもSUM関数の集計範囲は自動的に 拡大されます。   A  B    C   1 項目   売上    2  田中   100 3 小計   100   4 山田 200 ⇒ 挿入   5  佐藤 300   6  小計   600 式 = SUM(C4:C5) 3行目と4行面の間に行を挿入するとき  SUM関数の集計範囲は自動的に拡大され る  SUM(C2:C4) ⇒ SUM(C2:C5) (例2)挿入する行が集計行の直ぐ上の場合 SUM関数の集計対象範囲がずれてしまう   A   B    C   1 項目  売上   2  田中  100 3 小計  100   4 山田 200   5  佐藤 300 ⇒ 挿入    6  小計 600 ※      ※ 式 SUM(C4:C5) は   自動的にはSUMC(C4:C6)とはならない 2.実現したいこと       小計の直前にに行を挿入した場合も自動的に   集計範囲が変わるようにしたいのです。 実装方法 案1 (1)インストラクタのネタ帳  http://www.relief.jp/itnote/archives/003417.php  に、「表全体の最後の行」※に集計行がある場合として 「合計範囲を自動的に変更する」方法の紹介あり。  この方法はCOUNTA()で入力済みのセルをカウント。   私のケースでは  ・売上、利益などのセルが空白となる場合がある  ・C列は 売上 データを記載する列で   なので半角スペースや全角スペース は入らない  ・#REFやDIV/!0などは入りうる   C4:C5 のセル数は DIV/0!なども含めデータが入っているセル数  +ブランクが入っているセル数 は  COUNTA(C4:C5) + COUNTBlank(C4:C5) なので セル C5  =SUM(C2:INDEX(C4:C5, COUNTA(C4:C5)+COUNTBlank(C4:C5))   とするか?     ※「インストラクタのネタ帳」の方法は、「表全体の行数」を  もとめる場合に最後の行までを指定できて有効ですが、上の  ように小計をもとめる場合は、どうしても小計をもとめる範囲  式に書く必要があり、そこが集計範囲が変わってしまうと役に  立たないです。  代案としては、6行目の小計の行番号から3行目の小計の行番号  を引いて行数を求める方法でしょうか    この方法の場合、小計の式に 6行目行番号-3行目行番号  のように具体的に記述してはNGなので "下"の小計行から"上"  の小計行を引く というような間接的な指定の仕方が必要と  考えています。案1の検討はここまでです。 実装方法 案2  上のように表自体の集計関数を変える以外に、  マクロで対応する方法  行を追加する際に、 a)行の追加がある場合、行の挿入位置が小計   の集計範囲の”途中”なら 何もしない、  b)追加する行が集計行のすぐ上になる場合 つまり変更前の挿入位置+1   が小計行の行番号と等しい時は、追加する行数分   SUM関数の集計範囲を広げる     案1が難しそうなので案2で実装しようと思っています  Q1 案1と案2の検討結果についてお気づきの点があれあば教えて     ください  Q2 可能であれば、案2の実装方法についてヒント程度でもいいので     教えてください  以上

  • エクセル2003の「串刺し集計」について教えてください。

    年度別の売上等の集計表を作っています。 月毎にシート名を「0604」、「0605」・・・とし、半期毎にも集計を かけたいと思っています。(0604~0609のシート間) それぞれのシートは同じ表で、B列に「曜日(月~日)」が D列には「客数」が入っています。 そこで「特定の曜日の客数」を半期毎の集計シート(0609の後)に 表示させようとして、下記のような関数を入れました。 =sum('0604:0609'!,sumif($c$2:$c$30,"月",d2:d30)) しかし、「入力された数式は正しくない」と表示されてしまい ヘルプを参照しましたが、一般的な入力時の注意だけでした。 SUMにはSUMIFを組み合わせられないのでしょうか? 参照するセルの値が変わっても、集計結果に反映される関数を 教えていただけませんでしょうか。

  • ★EXCEL2007★最小値から2個の値を得たい(INDEXとSMAL

    ★EXCEL2007★最小値から2個の値を得たい(INDEXとSMALL関数) …表示環境によって縦罫線がずれることをお許しください… EXCEL2007を使ってワークシートを作っています。 仮に、月ごとの売り上げ個数が下記のようになっていたとして 1月|2月|3月|4月|5月|6月|7月|8月 14| 18| 16| 13| 16| 13| 15| 17 そこから、売り上げの少ない月を2つ抜き出したいと考えています。 INDEXとSMALL関数を使い1番目、2番目を抜き出せばいいのですが、 4月|4月 13| 13 のように、どうしても、4月が二つ出てきてしまいます。 13がだぶっているという事でそうなると思いますが、僕としては 4月|6月 13| 13 という値を得たいのです。 また、もし2番目と3番目の数字がだぶっていた場合、 1月|2月|3月|4月|5月|6月|7月|8月 14| 18| 16| 14| 16| 13| 15| 17 は 6月|1月 13| 14 でも 6月|4月 13| 14 でもかまいません。 正確な数字をつかむことが目的ではなく、傾向が分かればいいだけです。 どなたか詳しい方ご教授願います。

専門家に質問してみよう