magatamamo’s diary

じむいんの じむいんによる じむいんのための+α

シート名から自動で日付入力/コピペするだけで明日へ|Excel

 

エピローグ

安全課のエクセル

 

我が社の熱中症対策の一環で、
1シートが1日分のエクセルを、毎日入力して毎月提出しろ、というのがありました。

記入項目
・体温
・朝食・昼食の有無、その内容物
・前日飲酒の有無、その内容物

・水分補給の時刻と内容量
・就寝時間、起床時間、そして睡眠時間

 

というものでした。

誰がつくったものなのか、どこから流用してるのか、わかりませんが、
本来は印刷して使うの?ってくらいエクセルとしては機能的でないものでした。


例:2023年6月19日(土)これが一言一句手入力
数値入力するセルと単位のセルが一緒。(病院のアンケートかな)

すべての項目において計算式は入っていませんでした。

 

個人単位でいくらエクセルを改変しても、

来年になるとまた元の形式のやつが安全課から送付されてくると思うので、

去年まで、日付とか最低限度の改変をして毎年使っておりました。

 

 

そんなわが社の熱中症対策エクセルも今年で3年目。

ポチポチ記入し初めて、月も半ばになった時、ここにきて安全課のおじいちゃんが社内ネットワークの掲示板に
熱中症対策エクセル、機能的に改変しました!みんなに流布します!
おすきな様式をご使用ください!」
とエクセルを3個添付してきました。

 

同じ内容のエクセルなのに改変1、改変2、改変3とバージョン違いで
プルダウンをつけたもの、
チェックボックスをつけたもの、
入力必須要綱に色を付けたもの、
なんとも様々でした。


全ての機能を持ち合わせたパーフェクトなエクセルを作ればよいものを、なぜ別改変バージョンを3つも作る?と不思議に思いました。

 

時代はエクセル改変戦国時代


その件を安全課の本社おじいちゃんに別の電話のついでに尋ねてみると、
なんと、本社の女性社員A,女性社員B、女性社員C,それぞれが、思い思いに施行を凝らして作った様式をくれたので、その全てを採用した。

ということらしいのです。

 


ちょっと悔しかったので、
私も心の中で参戦したので、
ここに挙げときます。

 

シート名から自動で日付入力
(シートコピーするだけで明日ver)


例えば「Sheet1 」をシートのコピーし続けると「Sheet1 (2)」「Sheet1 (3)」「Sheet1 (4)」「Sheet1 (5)」…という風に勝手にカッコ内連番になりますよね

 

カッコ内の連番数字利用して、最短ならシートをコピーするだけで日付入力される数式作りをしました。

(シート名が601,602,603…630のあとは631、632、とづづいてしまうので、月のはじめ               は701などと手打ちしてください。)

 

例 一桁の月「任意シート名(601)」 で 月=6、日=1
  二桁の月「任意シート名(1001)」 で 月=10、日=1

 

注意点

シート名が601,602,603…630のあとは631、632、とづづいてしまうので、月のはじめ               は701などと手打ちしてください。

 

月と日を別々のセルに入れる場合

 

月のセル

一桁の月
           =VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-3,1))
二桁の月
           =VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-4,2))


日のセル

        =VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-2,2))

曜日のセル

=DATE(2023,月のセル,日のセル) / 表示形式ユーザー定義(aaa) 

(ここは皆様ご存じかと思われますが一応…)

 

 

 

年月日を全て一つのセルで済ませる場合


シート名に年を入れてしまえ。

例:シート名「2023(601)」 年=2023 月=6 日=1

 

一桁の月
=DATE(   VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-8,4)),
                VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-3,1)),
                VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-2,2)))
二桁の月
=DATE(   VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-9,4)),
                VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-4,2)),
                VALUE(MID(CELL("filename",A1),LEN(CELL("filename",A1))-2,2)))

 

 

 

あれ?これでならないと思った人へ

 

■このはてなブログからそのままセルへコピペした人へ、分かりやすいようにスペースとか改行してるけど、それがあるとエラーになるみたい。スペース全部消してね。ごめんね。

■保存したエクセルブックのシート名を読み込む関数が入っているので、

保存する前のエクセルではエラーが出ます。どこかに保存するように

 

■シート名にスペースが入っていないことを確認してください。

カッコが半角かどうかの確認もしてください。