どうしても一人で解決できず質問させていただきます。
図はイメージで実際のものとは異なります。
左側の元データがあり、このデータは4月1日から3月31日まで上書きされるものです。
例えば4月4日時点の数値、13日時点の数値、5月7日時点の数値といった風にどんどん累計が上書きされます。月末の数値が確定されたら、毎月月末の数値で上書きされます。(図参照)
そこで、図右のように各月の数値を関数をもって自動集計したいんですが何か良い方法はありませんか。
関数を設定してその関数は月末を迎えた時点で自動で関数から数値に代わすような仕組みとかってないですかね。
何か良い手はありませんでしょうか。
どうかご教授よろしくお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No4です。
>月の2日以降に自動的に控えを作成する方法をご教授お願いします。
すでに既出の回答にある通りです。(No3様の回答も参照してください)
VBAだと直接実行できないかもなので、VBSをタスクスケジューラに登録しておけば良いですね。
(もちろん、VBS以外の方法でもかまいません)
どのようなタイミングが良いのかは実際の環境にもよりますが、更新後即時に控えをさ作成しなくても良さそうなので、1回/1週間などの間隔でも充分ではないでしょうか。
(極端に言うなら、1回/月でも良いのかも)
システムからの出力で必ずクリアされるようなセルがあれば、そこをフラグ代わりに利用するのが良いでしょうし、無ければ必ず出力されるセルで代用しても良いでしょう。
・最初に、このチェック用セルをチェックして、フラグが立っていれば何もしない。
(実際は、識別可能であればどのようなフラグでも良いです)
・クリアされていれば、ファイルをオープンして控えを作成し、
フラグを立てておく。
といった感じの処理を登録しておけば実現できるでしょう。
フラグを設けるとしたのは、当該エクセルファイルを毎回開くと若干時間が掛かるので、開かずにチェックだけを行って、処理の必要があればブックを開くという方が効率的かと想像したからです。
そんなことには構わないのであれば、毎回ブックを開いて直接確認する方式にしておけばフラグは不要になります。
「ブックを開かずにセル値を取得する」のにはExcel4マクロといわれるものを利用すれば可能です。
(1セルの値の取得だけなら、こちらの方が速くできますので)
ただし、エクセルアプリケーションオブジェクトを起動しなければなりませんので、その時間だけは必要になりますけれど。
No.4
- 回答日時:
No2です。
>例えば翌月月初更新時には上書きになります。
固定出力ということですよね?
であるなら、月の2日以降に自動的に控えを作成するようにしておきさえすれば、解決すると考えられます。
No3様の回答にもありますが、完全自動化するのなら、タスクスケジューラ等を利用するのが良いかも知れません。
電源が落ちたままという可能性のないPCで実行する必要がありますけれど・・
とはいえ、1回/月で実行できれば良いので、必ずしも毎日電源が入る保証も必要ないでしょう。
(極端に言えば、連続1か月間電源が入らないようなことが無ければよさそう)
No.3
- 回答日時:
固定値のデータを吐き出すような場合、セル参照は無理なので、VBAを使うしか方法はないと思います
また、VBAをを使ってデータベースとして書き出し、タスクスケジューラで、定期的にPowerShellで上記VBAを実行するようにすれば、完全自動化は可能だと思います
・VBAでデータの読み込み、書き込みをする
https://daitaideit.com/vba-get-write-db/
・PowerShellでVBAを定期的に実行する
https://www.excellovers.com/entry/taskschedule01 …
この辺りを参考にして、作りこむしかないと思います
No.2
- 回答日時:
No1です。
>月毎に集計してもらうように依頼しましたがシステム上無理だと却下されました。
何らかのシステムからの出力ということですよね?
No1の回答は「月毎の集計を出力データにする」などとは言っていないつもりです。
「上書き」しないようにできさえすれば、後の加工は何とでもなるでしょうと書いたつもりです。
毎月出力されるデータをきちんと揃えられれば、それを元に計算すれば良いだけなので、関数でもなんででも簡単にできるでしょう。
システムが同一ブックの同一シートの決まった位置にしか出力しないというのであれば、それを放置せずに、別シートに保管するなり、別ブックに保管して控えを作成することを考えれば良いのではないでしょうか?
シートの控えを取る程度であれば、マクロでも簡単に自動化できると思います。
一方で、普通のシステムならシステムからの出力を同じブックの固定位置にしか出力できないというようなことはなく、毎月個別のブックで出力されるとかブックは固定でもシートを変えるとかしているのではないでしょうか?
もしもそうであるなら、控えのブック等を作成する必要もなくなります。
単に、「自動作成したいシート」に計算で算出させれば良いだけですので。
No.1
- 回答日時:
こんにちは
>各月の数値を関数をもって自動集計したいんですが
>何か良い方法はありませんか。
エクセルの関数は、セルや定数を用いて計算するものですので、参照されているセルの値が変われば、算出結果もそれに応じて変化します。
計算方法を「自動」にせずに「手動」にしておけば、即時反映されることは無くなりますけれど・・・
>関数を設定してその関数は月末を迎えた時点で自動で関数から
>数値に代わすような仕組みとかってないですかね。
手操作でも良ければ、比較的簡単にできます。
1)固定値化したいセル範囲を選択しコピー
2)そのままで、値をペースト
することで、関数を固定値にすることができます。
月に1回であるなら、その程度でも対応できるのではと思います。
>何か良い手はありませんでしょうか。
>どうかご教授よろしくお願いいたします。
質問者様がマクロを作成できるようであれば、マクロを利用することである程度まで自動化することは可能と思われます。
ただし、完全に自動化しようとするなら、実際のシートがどのように更新され、マクロはどのようなタイミングで実行されるべきか等、充分な事前検討が必要と考えられます。
もしも、更新入力が1回/月とかであるのなら、そのデータを「上書き」ではなく、別の列に記載するようにしておきさえすれば、ご質問のような問題は発生しませんし、お求めのデータに変換するのも容易なことだと思いますけれど・・
ですので、この方法が一番のお勧めです。
どうしても、現状のように「2列目に最新データが1列だけ表示されていなくてはなくてはダメ」と言うのであれば、別に「閲覧用シート」を作成しておいて、関数等でご提示のような表示となるシートにしておけば済むことと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL値貼り付け(ある条件のもと自動化) 5 2023/06/06 12:21
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Excel(エクセル) Excelの関数で可能でしょうか、日付や式の値の自動更新 4 2023/05/19 17:17
- 数学 数学 2変数データで、「相関係数=−1」の散布図を書く際 写真に これら5組のデータの散布図を描くと 4 2023/02/15 10:46
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- 簿記検定・漢字検定・秘書検定 簿記3級 仕訳の問題です。 2 2022/09/23 22:03
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- 大学受験 国立受験 11月からの大逆転劇を起こすには 7 2022/11/14 19:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数シートからデータを拾って...
-
excelの不要な行の削除ができな...
-
エクセルファイルのシート毎の容量
-
シート削除して同名シート追加...
-
トランジスタの選び方
-
Excelでシートの違うデータでグ...
-
エクセルマクロでデータ出力の...
-
エクセルで複数行のデータを1列...
-
Excelで日付変更ごとに、自動的...
-
1分ごとの数値のマクロ
-
Excel 売上管理シートに入力し...
-
【エクセル」 特定のセルで条件...
-
Excelマクロ 差分抽出の方法が...
-
エクセル マクロ "特定の日付...
-
Excelシートのデータを複数シー...
-
(VBAにて)日付でデータを抽出す...
-
ユーザーフォームで別シートを...
-
Excelのオートフィルタで、抽出...
-
エクセルのVBAでフィルタで絞り...
-
TTL(LS)のデータシート?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルファイルのシート毎の容量
-
複数シートからデータを拾って...
-
Excelでシートの違うデータでグ...
-
シート削除して同名シート追加...
-
Excelで日付変更ごとに、自動的...
-
excelの不要な行の削除ができな...
-
VBAで CTRL+HOMEの位置へ移動...
-
(VBAにて)日付でデータを抽出す...
-
EXCELで2つのファイルから重複...
-
他のシートの一番下の行データ...
-
エクセルのカメラ機能について
-
トランジスタの選び方
-
別々のシートの表をピボットテ...
-
エクセル 縦に長い表の印刷時...
-
EXCEL 複数行のデータを1行にま...
-
【エクセル」 特定のセルで条件...
-
オートフィルタで抽出したデー...
-
Excel 売上管理シートに入力し...
-
エクセル VBA VLOOKUP
-
EXCEL の表を一行ずつシートに...
おすすめ情報
ありがとうございます。
月毎に集計してもらうように依頼しましたがシステム上無理だと却下されました。
月ごとの値が出ればさむなんとかって関数で対応は可能(事実月単位で出るものはそうしている)ですが、そこが難儀です。
さらにシステム(更新者)のデータを続くことができないため、今ある状況下で対応する必要があるのです。
値貼り付けはこちらでは可能ですが元のデータがつつけないため、4月は良くても5月からは都度そのデータを続く必要があります。それはこちらとしても不可能なため質問させていただきました。
システムからの出力タイミングの話で、月末締めは出るものの、例えば翌月月初更新時には上書きになります。
今やろうとしているのは全自動集計をすることです。システムから出力されるデータに自動集計のシートを作成追加して、毎月の集計表を作成しようとしています。
人手をかけるのであればいくらでも可能な話ですが、人手をかけずにシステムで完結する方法を考えているのが現状課題です。よろしくお願いします。
ご回答いただいた皆様
ありがとうございました。
あきらめがつきました。VBA対応可能かシステムに相談中で、対応可能ならVBAにて処理しようとおみます。
ありがとうございます。月の2日以降に自動的に控えを作成する方法をご教授お願いします。
それが可能でしたら完全自動化が可能と思われます。よろしくお願いいたします。