ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの串刺し計算とSUMIF?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。
仕事でExcel 2013を使っている初心者です。

前任の者はエクセルが得意だったようで画像のようなもので集計していたようなのですが、前任者へ問い合わせるという事が不可能になってしまったため困っております。
マクロ?VBA?を解除されてしまっているのでやり方がわかりません。
初歩的な質問かもしれませんが・・・よろしくお願いいたします。

各月のシートから(月によって新しく人が増えていき、順番が50音順になっていますのでそのままだと串刺し計算ができません。)
年計で、その人の合計数1、合計数2を出したいのです。

質問内容が分かりにくい等ありましたら、ご指摘ください。

よろしくお願いいたします。

コメント(31)

>マクロ?VBA?を解除されてしまっているのでやり方がわかりません。
「解除」とはどういった状態ですか?
画像を見る限り(細かくて殆ど分かりませんが)、セキュリティの警告で
マクロが無効にされているだけな感じですが?
・例示された12月のシートの各列の意味が分からないのでどこを集計したいのかがわかりません。
・1月のシート〜12月のシートにおいて、人が増えていく(データの入っている行数が違う)だけで、各列の意味は同じですか?
・集計シートのA〜Q列とR列以降の違いについて教えて下さい。
>>[1]

レスありがとうございます。
セキュリティ警告でマクロが無効にされました。コンテンツの有効化となっています。
>>[3]
マクロを有効にすれば出来るのであれば、有効化すれば良いのでは?
またGoogleなどで「Excel セキュリティの警告 マクロが無効にされました」
のようなキーワードで検索すれば別の解決策も見つかるように思いますが
レスありがとうございます。
説明不足で申し訳ありません。


・例示された12月のシートの各列の意味が分からないのでどこを集計したいのかがわかりません。

→ B(氏名)C(手当1)D(手当2)E(C+Dの総支給額)F(所得税)G(振込金額)で、総支給額と所得税を集計したいです。


・1月のシート〜12月のシートにおいて、人が増えていく(データの入っている行数が違う)だけで、各列の意味は同じですか?

→ そのとおりです。

・集計シートのA〜Q列とR列以降の違いについて教えて下さい。

→ A〜Q列は各人の毎月の総支給額で、R列以降は各人の毎月の所得税です。

よろしくお願いいたします。
>>[4]

明日、会社のPCで確認しますがエラーのようなものが出たと思い諦めていました。
>>[6]
どのようなエラーだったのでしょうか?またそのエラーについて調べましたか?
>>[7] 調べていません。今はどんなエラー?だったかも確認しようがないのでわかりません。
>>[8]
確認出来たら書き込みをしてください
エラーが発生しても、そのエラーの原因をどうにかできれば使える可能性はあります

分からないことが起きた時は検索するなどして調べることをお勧めします
分からないことを分からないままにしないということを心掛けると
初心者から脱する一歩になると私は思います


現在のマクロを有効にする以外の解決法を考えても良いのですが
それを理解し、改変やエラーに対応出来る状態で実用していただきたい
というところも私としてはありますので、ここまで書かせていただきました
>>[9]

了解しました。
ありがとうございます。
明日、確認して書き込みします。
>>[9]

載せた画像のものは昨年のものなので、どちらにしても今年の分はまた作らないといけませんが…。
確認してみます。
>>[9]

コンテンツの有効化を押したところエラーも何も出ず、年計のセル部分は数字の羅列となっており数式等は入っていませんでした。
>>[12]
実行できたということでしょうか?
数式がないのはマクロのほうで計算し、結果をセルに書き込んでいるからだと思います
>>[13]

押してもエラーはでませんが、実行できたというのとは違うように見えます。
各月のシートの方で、数字を全て0にしても年計の数字は変わりませんでした。
>>[14]
各月のシートで数値を書き換えてもマクロが実行されなければ年計の数字が書き換わらないのは当たり前です。どのタイミングでマクロが実行されるのかがわからないのなら、
・各月のシートで数値を書き換える
・そのブックを保存する
・そのブックを再度開いて「コンテンツの有効化」を行う
で、年計のシートを確認してみてください。各月のシートで書き換えた内容が反映されていますか?
>>[14]
マクロは関数とは違い、数値が変わると自動的に結果も変わるという
ようにするためには、イベント(Worksheet_Changeイベントなど)に設定する必要があります
つまり、そのようにしていない限り、値を変更しても年計の値が変わらない
というのは当然のことです

ブックを開いたときにマクロが実行されるのであれば
Auto_Openマクロにしてあるのではないかと思いますね


集計処理用のマクロを実行すれば結果は変わるのではないかと思います

[開発]タブ-マクロ
を開くとマクロ名が表示されませんか?

マクロ名が1つならそれが集計処理を行うマクロだと思います

複数のときはそれらのどれかということになり、この場合は中身を
見てみないことにはどれを実行すれば良いのか分からないですが
とりあえず、Auto_Openがあればそれを実行すれば、ブックを開いたときと
同じ処理が行われるかと思います


今回はマクロを組んだ本人ではなく、しかも内容を理解していないため
マクロを実行することによるリスクが考えられます
(間違ったものを実行してしまいファイルが壊れる等)
今もし実行する場合は念のためファイルを保存し、万が一に備え
コピーもしておいたほうが良いかと思います
>>[15]

なるほど・・・。
やってみたのですが、各月のシートで数字を変えてみてから「コンテンツの有効化」を行うを押してみましたが内容が反映されませんでした。
>>[17]

マクロの内容の見方はこれで合っているでしょうか?
二つだけ選択できるようになっていました。
>>[20]
ちょっとこのマクロ名のみでは分かりませんね
というよりこの2つは集計処理のマクロではない可能性のほうが高いかと思います

以前はマクロで集計処理を行っていたのであればそのマクロが存在するはずです
ただ、画像の2つのマクロはマクロ名からすると別処理のものの可能性が高いと思います
Privateなモジュール、プロシージャになっているのかもしれません
集計用マクロがどれで実行タイミングがいつかというのは
コード自体を読まなければ分かりませんね

シート上にボタンが配置されていれば、それから実行できるように
設定している可能性もありますし、ショートカットキーに割り当てることも
可能なので、その可能性もありますが、実際に読んでみないことには・・・


因みに
>コンテンツの有効化を押したところエラーも何も出ず、年計のセル部分は数字の羅列となっており数式等は入っていませんでした。
とのことでしたが、この年計のセル部分は数字の羅列は元々シートに
書き込まれていた数値ではないのですよね?

コンテンツの有効化をしたところ、空だったはずのセルに書き込まれていた
若しくはセルに数値は入っていたが別の数値が書き込まれた
ということで良いのですよね?
>>[21]

因みに
>コンテンツの有効化を押したところエラーも何も出ず、年計のセル部分は数字の羅列となっており数式等は入っていませんでした。
とのことでしたが、この年計のセル部分は数字の羅列は元々シートに
書き込まれていた数値ではないのですよね?

→ 元々シートに書き込まれていた数値が入っていました。

コンテンツの有効化をしたところ、空だったはずのセルに書き込まれていた
若しくはセルに数値は入っていたが別の数値が書き込まれた
ということで良いのですよね?

→ 有効化する前から数字が入っていて、有効化したあとも数字は同じでした。

>>[22]
>有効化する前から数字が入っていて、有効化したあとも数字は同じでした。
ということは、コンテンツの有効化をしたから、年計のセル部分は数字の羅列
が表示された訳ではないということですね
そうすると、ブックが開いたときに集計用マクロは実行されていない
可能性が高いでしょうね

シートモジュールではなく、標準モジュールやブックモジュールに
なにか書かれていませんか?
マクロで集計処理を行っていたのだとすると、そのマクロがどこかに存在すると思うのですが
>>[23]

見てみましたが、このような感じです。
集計する計算の部分だけマクロを削除されてしまったということもあり得るのでしょうか。
>>[24]
標準モジュールのほうは何もない、若しくは同じように
表示、非表示のプロシージャがあるだけでしたか?

>集計する計算の部分だけマクロを削除されてしまったということもあり得るのでしょうか。
当然、消すことも可能なのでその可能性もありますね
その場合、なぜわざわざそこだけ消す必要があったのか疑問ですが・・・


集計関係のマクロが本当に現存しないとなると
御自分で集計用マクロを新たに書くか、関数でどうにかするかしかないですね
後は地道に手作業で行うかですが
>>[25]

前任者が上司と仲違いして辞めているため引き継ぎもなく・・・データ自体を消すと問題になるので、嫌がらせで便利な機能だけ消していったかも?などと考えています・・・。
今回は、期日まで時間がないため、関数で計算してみます。
ご丁寧にレスをいただきまして、ありがとうございました。

マクロが使えたらかなり仕事がはかどるなぁと痛感しています・・・。
これからエクセルを使う頻度も増えると思うので勉強してみようと思います。
>>[15]

今回は期日まで時間がありませんので関数で計算していこうと思います。
ご丁寧にレスをいただきまして、ありがとうございました。
>>[26]
>今回は、期日まで時間がないため、関数で計算してみます。
関数で計算する方法はお分かりになるのでしょうか?

私ならとりあえず、集計シートには各人の毎月の総支給額、所得税を
書き出せるセル範囲があるようですから、そこに各人のデータを関数で参照し、書き出す
それをそれぞれ計算する

各人のデータを参照する部分は検証していないため不確実ですが
INDIRECT関数やMATCH関数などを使って、といったところでしょうか
>>[28]

コピペで、ちまちま計算してみます(笑)
>>[29]
ブック全体、シート全体の構成が不透明、且つ非表示行、非表示列が存在するため
実用するには多少なりとも変更しなくてはならないでしょうが
参考までに各シートからデータを参照し、合計を求める関数式を書いてみました

・集計シート
A列:No、B列:氏名
(A、B列は既に書き出されているものとします)

[ 総支給額 ]
D〜O列までが各月の総支給額を参照し、表示する範囲
D2:O2に各月を書いておく(D2セル値:1月, E2セル値:2月, ・・・, O2セル値:12月)
※D2:O2に書かれた月と同名のシートが存在(シート名:1月, シート名:2月, ・・・, シート名:12月)
P列に総支給額合計を算出

D3セル =IF($A3="","",IF(ISNA(MATCH($A3,INDIRECT("'"&D$2&"'!A:A"),0)),"-",VLOOKUP($A3,INDIRECT("'"&D$2&"'!A:G"),5,FALSE)))
D3セルをO3セルまでコピー又はオートフィル
P3セル =IF($A3="","",SUM(D3:O3))
D3:P3を適当な行までコピー又はオートフィル


[ 所得税 ]
Q〜AB列までが各月の所得税を参照し、表示する範囲
Q2:AB2に各月を書いておく(Q2セル値:1月, R2セル値:2月, ・・・, AB2セル値:12月)
AC列に所得税合計を算出する

Q3セル =IF($A3="","",IF(ISNA(MATCH($A3,INDIRECT("'"&Q$2&"'!A:A"),0)),"-",VLOOKUP($A3,INDIRECT("'"&Q$2&"'!A:G"),6,FALSE)))
Q3セルをAB3セルまでコピー又はオートフィル
AC3セル =IF($A3="","",SUM(Q3:AB3))
Q3:AC3を適当な行までコピー又はオートフィル



因みに、集計する人のNoと氏名の一覧などは別途存在しているのでしょうか?
もし存在しないのであれば、人が増えたときにNoをいくつにするのかはどう判断しているのでしょう?

集計する人の一覧が存在しないと集計を行うことはできないと思いますので
存在しないのであれば、まずそれ自体を関数か何かで導くことになるかと思います

上記の式は一覧があり、そこからA、B列にNoと氏名を書き出した状態を前提としています
その上でA列のNoをキーとして検索し、各人のデータを参照してきています
>>[30]

ご親切に、ありがとうございます!
挑戦してみます!

ログインすると、残り2件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。