はじめまして。ご質問をお願いします。
以下のような集計を行うための原本を作成しています。
シート作成単位:人(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さん
集計作業を行う度にくしざし計算の設定を行うのは手間ですし、
エクセルレベルが異なる複数人数が集計を行うため、集計作業者が式を設定しなくてもいいよう、
原本集計表に関数等を設定して対応したいと思っています。
(マクロではなく、関数等で対応したいと思っていますのでよろしくお願いします)
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
シートの構成が不明なのでなんとも言えませんが、関数で自動的にというのはエクセルの想定を超えているように思います。
出来るかどうかは検証した事がありませんが、無理やりやるとしたら集計したい人の集団をマスターにし、INDIRECTで串刺し算の範囲に代入させるくらいでしょうか?
No1の方も仰っているように、データベースソフト向きの質問だと思いますが・・・
私が昔エクセルやった方法ですが・・・
起点となるシート・終点となるシート(この2つは集計用のダミー)の間に集計したい人のシートをドラッグ&ドロップでその都度移動するのが簡単では?
(串刺し算は起点となるシートから終点となるシートまでが合算される仕様を利用する)
操作もそれ程難しいものではありませんから、教えれば誰にも出来ます。
ご回答ありがとうございます。
起点となるシート・終点となるシートの間に集計したいシートを挿入するという方法は以前、他の方からアドバイスを頂いたことがあったのですが
もともとシート数が多くなる作業ですので、出来ればシート数をあまり増やしたくなく、他の方法を模索しているところでした。
(課の集計を更に支店単位で集計するのですが1支店において課が7つもあります。 集計作業者からは出来れば1つのファイルで集計したいとの要望があったため
上記の方法で1支店1ファイルで作成するとなると
支店集計シート 1シート+課毎集計シート 7シート+課毎集計を行うための起点シート&終点シート 14シート+人単位で作成するシート 課によって人数変動…となり
分かっているだけでも計22シートと多くなってしまいます。)
またアドバイス通り、SUM関数にINDIRECT関数で範囲を代入しようとした事もありましたが式の内容が間違っているためかエラー値が出てしまいました。
正しい式が分かるようでしたら教えて下さい。よろしくお願いします。
No.3
- 回答日時:
今後の仕事に役立つかもしれないと思い検証してみましたが、やはりシートを飛び越した合算を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名以上なら式も直さなければなりません。
シート数や計算範囲によっては相当処理が重くなるので手動計算にしておいて、必要時のみ計算させた方が良いかも知れません。
初めの回答のように、エクセル向きのタスクでは無いと思いますよ。
ご返信&いろいろと検証して頂き、ありがとうございました。
やはり関数での対応は難しいのですね。
今回、教えて頂いた方法も確かに重たくなりそうですし…。
最初に教えて頂いた始めと終わりのシートを作成し、その間に集計対象のシートを挿入する方法で対応しようと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) Excel関数教えてください!! Excelで勤怠集計をしているのですが、部署別に雇用形態ごとの月間 2 2022/10/21 23:06
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelにて、ユーザーフォームで...
-
【再質問】【マクロ】複数シー...
-
エクセル 不特定数シートのく...
-
9枚のシート上の同形式の表を...
-
エクセルで条件に一致した別の...
-
vba SUMIF関数で合計を出す
-
エクセルで各シートの該当項目...
-
エクセルの主軸と第2軸の0を合...
-
Excelで、空白を表示したい
-
エクセルで円グラフに引き出し...
-
ユーザーフォームに入力したデ...
-
エクセルで長い行を5行ごとに1...
-
DATEDIFでマイナス表示をさせたい
-
同一セルに日時があるものを日...
-
【ExcelVBA】全シートのセルの...
-
エクセルで文字が白くなる
-
【エクセル】オートフィルタで...
-
エクセルで文字を含む式に、カ...
-
ブック名、シート名を他のモジ...
-
エクセル(2003) 「1900/1/0...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelにて、ユーザーフォームで...
-
indirect 関数を使った複数シー...
-
【再質問】【マクロ】複数シー...
-
Excel、複数シート同セルを別シ...
-
vba SUMIF関数で合計を出す
-
別シートに毎回異なるデータを...
-
Openoffice calc で複雑な入力...
-
エクセルの関数について : CHOO...
-
エクセル VBA ユーザフォーム ...
-
エクセルで三つの条件での参照...
-
エクセル 不特定数シートのく...
-
エクセルで条件に一致した別の...
-
Excelで複数シートの特定カラム...
-
VBA データ抽出 出力 検索模索!
-
エクセルで各シートの該当項目...
-
excel マクロで数字を入れると...
-
エクセルの主軸と第2軸の0を合...
-
エクセルで円グラフに引き出し...
-
エクセルで文字が白くなる
-
エクセルで長い行を5行ごとに1...
おすすめ情報