IMPORTRANGE関数で休日設定シートを転記すればすべてが丸く収まった

2020.03.18

以前、Googleスプレッドシートでスケジュールを作成する方法を紹介したことがあります。そこでは、スケジュール表を作成する手順とともに、「休日設定」シートを紹介しました。

私は関わっているいくつかプロジェクトについて、それぞれスケジュール表を作成し、それぞれに「休日設定」シートを作成してきました。年が明けて2020年になったので、「休日設定」シートに2020年の祝日や会社指定休日を追加すべく早速作業にとりかかったところ、どのスケジュール表の「休日設定」シートの更新が終わっていて、どれをまだ更新していないかがあっという間にわからなくなりました(汗)。そこで「休日設定」シートの更新をシンプルにする方法を考えました。

スケジュール表と「休日設定」シートの作成を簡単におさらい

スケジュール表を作成するときはWORKDAY関数を使います。WORKDAY関数は、土日を除く営業日を計算することができる便利な関数ですが、休日として設定しないと、祝日や会社の創立記念日といった会社指定休日を除いた営業日を計算することができません。

Googleドキュメントエディタヘルプ > WORKDAY

土日以外のお休みもWORKDAY関数で計算させたい時は、「休日設定」シートを作って、祝日や会社の指定休日を載せておきます。そうすると、土日だけでなく祝日や会社指定のお休みなども除いて、スケジュール表のある日から指定した営業日後/営業日前の日付を計算することができます。

たとえば、今日は2020年2月5日水曜日で、ブログの原稿作成作業が5日間かかるとすると、ブログの原稿作成終了日は2020年2月14日(金曜日)と表示されます。

(計算式)=WORKDAY(E2,D2,‘休日設定’!C:C)

2020年2月14日の間に、

  • 2020年2月8日…土曜日
  • 2020年2月9日…日曜日
  • 2020年2月10日…労働日数調整のため会社指定休日
  • 2020年2月11日…建国記念の日

の4日間のお休みがあったので、2020年2月5日の5営業日後の日付が2月14日と表示されました。

もし、祝日と会社指定休日を営業日の計算から除かないと、2020年2月5日の5日後は2020年2月12日(水曜日)と表示されます。2020年2月5日からWORKDAY関数を使うだけだと会社指定休日と祝日が営業日としてカウントされて、設定した作業日数と実際の作業日数が2日ずれてしまいます。

(計算式)=WORKDAY(E3,D3)

(カレンダーにまとめると、こんな感じ)

作業日数の1〜2日のずれは、あとから地味に焦るので、スケジュール表を作成するときは、必ず「休日設定」シートを合わせて作成するようにしていました。

「休日設定」シートの更新が大変で困った

そうこうしているうちに、冒頭の問題が発生しました。

  • 2019年から年が明けて2020年になって、「休日設定」シートに2020年の祝日や会社指定休日を追加する必要が出てきた
  • あっという間に、どれを更新していてどれを更新していないかがわからなくなった

データベースとなる「休日設定」シートをひとつ用意すれば解決しそう

「休日設定」シートを独立したファイルに作って、それをそれぞれのスケジュール表にIMPORTRANGE関数で転記させれば良かったとふと気づきました。工場のお休みや来年の祝日の追加はそのデータベースとなる「休日設定」シートを更新するだけで、すべてのスケジュール表の「休日設定」シートに反映されるようになります(『原本_休日設定シート』に日本と中国のお休みをまとめました。中国の方はまだ更新していません)。

スケジュール表に、シートを追加して「休日設定」という名前に変えておきます。シート名を「休日設定」に揃えておくと、スケジュール表を新たに作ったときも、これまで使っていた計算式を使い回せることが多くて便利です。

「休日設定」シートにIMPORTRANGE関数を入力します。関数は下記の通りです。「URL」と「シート名・列」をダブルクオテーションで挟むのを忘れがちなので注意してください。

(計算式)=IMPORTRANGE(“転記したいシートのURL”,“転記したいシートの名前と列”)

「アクセスを許可」をクリックします。

『原本_休日設定シート』が無事表示されました。私は、使わない行列は削除するようにしています。下記のスクリーンショットの場合は、D列より右側は削除してしまいます。

「休日設定」シートのデータベースファイルをIMPORTRANGE関数で引っ張ることの懸念点

IMPORTRANGE関数を多用すると、ファイルの動作が重くなる可能性があります。これまで、IMPORTRANGE関数を多用したファイルの動作が重くなったことがありました。今も、重いファイルがあります。

方々調べたり、話を聞くところによると、ファイルを開く、更新するたびに、IMPORTRANGE関数で引っ張っているデータを参照元ファイルに読みにいっているので、IMPORTRANGE関数で引っ張っているデータの数が多いほど、また、IMPORTRANGE関数でつながっているファイル数が多ければ多いほど、ファイルの動作が重くなっているのではないかとのことでした。しかも、そういうファイルはたいてい、10人程度が常時開いていたりするので、それもファイルの動作が重くなる原因のひとつのようです。

私の場合は、今のところ自分が使っているファイルにしか紐付けていないので、ファイルの動作が重いと感じることはありません。しばらく様子を見るつもりです。

仕組み自体はそう難しいものではありませんので、機会があれば是非試してみてください。

P.S.
FORMULATEXT関数を覚えました。関数をセルに表示させることができます。自分以外の人が作ったスプレッドシートを編集するときに、入力されている計算式を一覧表示させるためによく使っています。セルに入力されている計算式をいちいち見なくても済むようになったのでちょっと便利になりました。こちらも、試してみるとすぐに動きがわかると思うので、試してみてください。

(G列に入力した計算式)

(セル:G2)=FORMULATEXT(F2)
(セル:G3)=FORMULATEXT(F3)

「あさすけ先生の、超役に立つGoogleスプレッドシート解説」関連記事

 
【スプレッドシート時短術】19,767個の空白セルを3秒で「0」にする小技
計算式のコピペ漏れを防ぐ! 気難しそうに見えて案外シンプルないいヤツ 〜ARRAYFORMULA関数〜
VLOOKUP関数のエラー原因を探すのに2時間もかかっていた私が、いろいろな関数を使いこなせるようになったコツを考えてみた。
Googleスプレッドシートに週ごとにタスクをまとめて、その週の未完了タスク・完了タスク・タスクの達成率がひと目でわかるようにする
IMPORTRANGE関数で休日設定シートを転記すればすべてが丸く収まった(本記事)
値ペーストと書式ペーストを使いこなすと作業が格段に速くなる – エクセルやGoogleスプレッドシート
Googleスプレッドシートでデータの結合・分割の幅を広げたい。改行するなら CHAR(10) を使おう!
「$」マークを使いこなして表をパパッと作る 〜相対参照と絶対参照の復習〜
わざわざ使いたい、転置して貼り付けができるGoogleスプレッドシートの「TRANSPOSE関数」
地味にはまっている、GoogleスプレッドシートでUNIQUE関数とSORT関数で入力規則(プルダウン)用のデータリストをつくる方法
Googleスプレッドシートのフィルタ表示機能が便利
Googleスプレッドシートでチェックリストを5分で作ってみる
営業日の異なる日本と中国のスケジュール作成ツールをGoogleスプレッドシートで作ってみた

このブログを書いたスタッフ

経営企画

あさすけ

とてつもない悩み性であったが、この会社に入ってから「死なない! 大丈夫!」が合い言葉に。日々、色々な人に助けられながら元気に働いている。透き通った歌声の、トリニティの看板娘。

あさすけのブログ一覧

コメントを投稿

ログイン

登録

会員登録せず購入する

ログインせずに投稿する場合には名前とメールアドレスを入力してください。


管理者の承認後、コメントが表示されます。

カテゴリー

コメント

このページのトップへ
このページをシェアする

ブランドから探す

端末を選ぶ
  • Tablet
  • Android
  • Laptop
  • AirPods
  • Apple Watch
  • iPad
  • iPhone

機種から探す

シリーズを選ぶ

機種を選ぶ

カテゴリーを選ぶ

機種から探す

カテゴリーを選ぶ

カテゴリーから探す

端末を選ぶ
  • Tablet
  • Android
  • Laptop
  • AirPods
  • Apple Watch
  • iPad
  • iPhone

カテゴリーから探す

端末を選ぶ
  • Tablet
  • Android
  • Laptop
  • Apple Watch
  • iPad
  • iPhone

カテゴリーから探す