マクロを使わずにNOW関数(日付・時刻)などのエクセル関数を特定の時間間隔で自動計算させる方法

エクセルの日付や時間は関数を使って自動出力できますが、時間は刻一刻と変化していくので、定期的に自動計算してくれたらなぁと思う時ないでしょうか。

エクセルの標準機能ではできることが限られているので、マクロ機能を使って自動計算する方法がすぐ思いつくところです。

今回はマクロ使わずに、管理者がいなくなっても長く運用できるだろう方法を紹介します。

スポンサーリンク

日付・時刻を出力するNOW()関数の使い方

NOW()関数

まずはじめに関数を使って日付・時刻を出力する方法を説明します。
出力したいセルを選択し、半角で『=NOW()』と入力します。カッコ()の中は何も書きません。

セルの書式設定

このNOW()関数は表示の設定を変えることで、日付だけの表示にしたり、秒数まで表示したりできるようになります。

まず右クリックから『セルの書式設定』をクリックします。


出てきたダイアログボックスの『表示形式』のタブから『ユーザー定義』を選択します。

いろいろな種類の日付・時刻表示があるので好みのものを選択するか、『種類』と書かれているカラムに自分で直接入力してカスタマイズします。

ここに出ている『yyyy,m,d h,mm,ss』 はそれぞれ『年,月,日 時間,分,秒』を意味するので、例えば 『m/d h時mm分』と打てば『8/9 6時11分』と表示されます。

例えばここでは『h”時”mm”分”ss”秒”』という表示形式を選択してOKをおすと、図のように表示形式が変わります。

この時表示形式の選択画面では 『h”時”mm”分”』とダブルクォーテーション『””』 がついていますが、これは文字列を表す部分には””で挟む必要があるからです。

手入力する時は自分で入れると丁寧ですが、入れなくてもOKを押すと自動でエクセルが文字列を認識して””で挟んでくれています。

これに関しては以下の記事も参考にしてください。

時刻の数値表示に関して

ここは少し余談ですが、NOW()関数などで出力した、日付や時刻をコピー&ペースト(特に数値で貼り付け)すると、例えば『2024/1/1 8:00』の場合は『45292.4583333』となったり、謎の数字が出てくると思います。

これは、ゼロという数字を日付表示にしてみるとわかるのですが、エクセル上は『1900/1/0 0:00:00』という日付・時刻を基準にして、1日を『数値1』としてカウントアップで計算して日付表示に出力しています。


これを利用して日付の数値計算もできます。

例えば、1時間は=1/24 (1日÷24時間)で計算できるので、日付セルを参照した上で『=(参照セル)+3/24』と数式を打ち込めば、参照セル+3時間後を表示させることができます。

日付・時刻表示に関しては、グラフの描き方における応用も紹介しています。以下の記事をチェックしてみてください。

スポンサーリンク

エクセル関数を特定の時間間隔で自動計算する方法

マクロを使わず、例えば『1分ごと』などの特定の時間間隔でエクセル関数を自動更新する方法を紹介します。

ここでは、更新していることが分かりやすいように、先ほど説明したNOW()関数を使います。

ちなみにですが、手動更新で十分であれば、『F9』キーが再計算のショートカットになっているので簡単に更新することができます。

データのインポートを行う

この自動計算の方法はエクセルのデータインポート機能を使用します。
その際に他のブックを参照してしまうと、ファイルを移動したり、送付したりした際に機能しなくなるので、同じエクセルファイル内で完結させる必要があります。

インポート元のデータは自動更新機能を使うための、ただのダミーなので何でもよいです。
ここではわかりやすいように『テスト』としておきます。このインポートデータは作業範囲外(印刷範囲外)にしておくのがおススメです。

まず『データ』タブから『データ取得』→『その他のデータソースから』→『テーブルまたは範囲から』の順で選択していきます。


すると『テーブルの作成』というダイアログボックスが出てくるので『テーブルに変換するデータ範囲を指定してください』というカラムに、ここでは『テスト』と書いたセルを選択して入力します。


テーブルの作成でOKをクリックすると、『Power Query エディター』が立ち上がります。
特にここでは何も編集する必要はないので、そのまま『閉じて読み込む』の▼マークをクリックし、下の段にある『閉じて次に読み込む …』をクリックします。


『データのインポート』というダイアログボックスが出てくるので、『データを返す先を選択してください』の項目で『既存のワークシート』にチェックを入れ、適当なセルを選択して、OKをクリックします。


すると選択したセルに参照元の『テスト』というテキストがテーブルとして挿入されます。

接続のプロパティから自動更新を設定する

次に挿入された側のテーブルの『テスト』を選択した状態で、メインタブの『テーブルデザイン』から『更新』→『接続のプロパティ』を選択します。


『クエリプロパティ』というダイアログボックスが出てくるので、『定期的に更新する』にチェックを入れます。
その横にある数字を調整することで、更新頻度を変えられます。単位は分であり、整数入力であるため、最小間隔は1分になります。

ここまでくれば完成です。シート内にある関数が1分ごとに再計算され最新データに更新されます。

さいごに

以前は同じような方法で、自動更新させる手段として、同じブック内の別シートを参照していました。

しかしながら、この方法はバージョンによっては「別プロセスで使用されているため、アクセスできません」というエラーが出るようです。

今回紹介した内容は、それよりもさらに汎用性があるかなと思っております。

皆さんのお仕事に少しでも役立てれば幸いです。ではまたノシ

コメント

タイトルとURLをコピーしました