- 締切済み
エクセル 不特定数シートのくしざし計算について
はじめまして。ご質問をお願いします。 以下のような集計を行うための原本を作成しています。 シート作成単位:人(Aさん・Bさん・Cさん…)⇒1人1シート ↓ 集計単位:課(1課・2課・3課…)⇒1つの課1シート 人単位で作成するシート、集計シートの形式は同じです。 課集計をくしざし計算によって算出しようと思ったのですが、 課によってシートを作成する人数が異なります。 例)1課→Aさん・Bさん・Cさん 2課→Dさん・Eさん・Fさん・Gさん・Hさん・Iさん 3課→Jさん・Kさん・Lさん・Mさん 月ごとに作成する表ですが、月によっても作成人数が変動することがあります。 例)1課(11月)→Aさん・Bさん・Cさん 2課(12月)→Aさん・Bさん・Cさん・Nさん 集計作業を行う度にくしざし計算の設定を行うのは手間ですし、 エクセルレベルが異なる複数人数が集計を行うため、集計作業者が式を設定しなくてもいいよう、 原本集計表に関数等を設定して対応したいと思っています。 (マクロではなく、関数等で対応したいと思っていますのでよろしくお願いします) よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- sero
- ベストアンサー率47% (916/1944)
No3の回答に誤りがありました。 「4人未満」ではなく「4人以下」でした。
- sero
- ベストアンサー率47% (916/1944)
今後の仕事に役立つかもしれないと思い検証してみましたが、やはりシートを飛び越した合算をINDIRECTでやろうとするのは無理があるようです。 (INDIRECTによる範囲代入を受け付けない関数もありますし) 人数が変動する要素がある以上、INDIRECTで単純参照したセルを足す事で逃げる方法があります・・・ sheet1が集計シートで、集計する数値がB1以降にあるとすると、sheet1のA1~A5セルに「A」「B」「C」「D」「N」とシート名を入力し、 B1に =INDIRECT(sheet1!A1&"!B1")+INDIRECT(sheet1!A2&"!B1")+INDIRECT(sheet1!A3&"!B1")+INDIRECT(sheet1!A4&"!B1")+INDIRECT(sheet1!A5&"!B1") という式を B2に =INDIRECT(sheet1!A1&"!B2")+INDIRECT(sheet1!A2&"!B2")+INDIRECT(sheet1!A3&"!B2")+INDIRECT(sheet1!A4&"!B2")+INDIRECT(sheet1!A5&"!B2") という式を順番に入れていく。 (絶対参照と文字列関数を使えば式の入力を簡略化する事は可能) 5人ならそのまま使えますが、4人未満ならA1~A5のいずれかに何も入力されていないシート名をダミーとして指定しなければなりません。 6名以上なら式も直さなければなりません。 シート数や計算範囲によっては相当処理が重くなるので手動計算にしておいて、必要時のみ計算させた方が良いかも知れません。 初めの回答のように、エクセル向きのタスクでは無いと思いますよ。
- sero
- ベストアンサー率47% (916/1944)
シートの構成が不明なのでなんとも言えませんが、関数で自動的にというのはエクセルの想定を超えているように思います。 出来るかどうかは検証した事がありませんが、無理やりやるとしたら集計したい人の集団をマスターにし、INDIRECTで串刺し算の範囲に代入させるくらいでしょうか? No1の方も仰っているように、データベースソフト向きの質問だと思いますが・・・ 私が昔エクセルやった方法ですが・・・ 起点となるシート・終点となるシート(この2つは集計用のダミー)の間に集計したい人のシートをドラッグ&ドロップでその都度移動するのが簡単では? (串刺し算は起点となるシートから終点となるシートまでが合算される仕様を利用する) 操作もそれ程難しいものではありませんから、教えれば誰にも出来ます。
お礼
ご回答ありがとうございます。 起点となるシート・終点となるシートの間に集計したいシートを挿入するという方法は以前、他の方からアドバイスを頂いたことがあったのですが もともとシート数が多くなる作業ですので、出来ればシート数をあまり増やしたくなく、他の方法を模索しているところでした。 (課の集計を更に支店単位で集計するのですが1支店において課が7つもあります。 集計作業者からは出来れば1つのファイルで集計したいとの要望があったため 上記の方法で1支店1ファイルで作成するとなると 支店集計シート 1シート+課毎集計シート 7シート+課毎集計を行うための起点シート&終点シート 14シート+人単位で作成するシート 課によって人数変動…となり 分かっているだけでも計22シートと多くなってしまいます。) またアドバイス通り、SUM関数にINDIRECT関数で範囲を代入しようとした事もありましたが式の内容が間違っているためかエラー値が出てしまいました。 正しい式が分かるようでしたら教えて下さい。よろしくお願いします。
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルの機能の「統合」(メニューのデーター統合)が使えないか 解説書でも読んでください。 質問内容は、アクセス向きの課題のように思いますが。
お礼
ご回答ありがとうございます。 「統合」機能の内容を一度確認してみます。
お礼
ご返信&いろいろと検証して頂き、ありがとうございました。 やはり関数での対応は難しいのですね。 今回、教えて頂いた方法も確かに重たくなりそうですし…。 最初に教えて頂いた始めと終わりのシートを作成し、その間に集計対象のシートを挿入する方法で対応しようと思います。 ありがとうございました。