mieki256's diary



2013/11/14(木) [n年前の日記]

#1 [pc][windows][zatta] Excelを少し勉強

Excelで日付関係の計算?をしようと思って、少しググって勉強したことをメモ。

何日後、を求める。 :

例えば、A1セルに「2013/11/14」みたいな値が書いてあったとして。そこから5日後、を求めるなら、=A1+5、だけでいいらしい。

曜日を求める。 :

曜日を求めるなら、WEEKDAY() が使える。例えば =WEEKDAY(A1) と書けば、日〜土が、1〜7の値として返ってくる。その、1〜7の値を、「木曜日」だの「木」だので表示したければ、セルの書式設定をユーザ定義にして、「aaaa」や「aaa」にすればいい。

もし、日〜土、ではなくて、月〜日を、1〜7として得たかったら、WEEKDAY(A1,2) となる。第二引数で、日〜土をどんな値で返すのか、変更できる。

休日・祝日を考慮して求める。 :

土日を休日として扱いながら何かしらしたい時は ―― いわゆる営業日云々を加味して日付を得たいなら、WORKDAY() が使える。これはアドインで追加しないと使えない。

アドインの追加方法は、Excel 2007なら、左上の丸いボタンをクリックしてメニューを出して、Excelのオプション → アドイン → 管理:設定ボタン → 分析ツールにチェックを入れる。…とにかく「分析ツール」ってヤツを有効にしないといけないらしい。

ちなみに、Excel 2003 で同じことをしたら、Excel 2003 が終了できない状態に…。Excel 2003 と Excel 2007 を一緒に入れてるから、そういう不具合が起きるのだろうか…。とりあえず、Excel 2003 でコレをやるのは諦めたり。

さておき。例えば、「とある日付(A1)から、19日後の日付を求めたい。ただし、その日が土日だったら、前倒しして金曜の日付を求める」なんてことがしたかったら…。

その場合は、
=WORKDAY(A1+(19+1),-1)
と入れればいい。A1に書かれた日付の20日後を一旦求めて、そこから前日を求める= -1 を指定することで19日後の日付を得る。そこで得た日付が土日だったら、-1 を指定してるから土日じゃなくなるまで前に遡ってくれて、結果的に金曜日の日付が得られる。なんかちょっとややこしいけど。

祝日はどうすんのや、土日しか休み扱いしてくれんのか。と思ったが、WORKDAY() の第三引数で指定出来るそうで。

例えば、D1〜D10あたりに、祝日の日付がずらりと入っていたら、
=WORKDAY(A1+(19+1),-1,$D$1:$D:$10)
と書けばいい。

「$D$1:$D:$10」は、「D1からD10までの範囲を参照しなさいよ」という記述。$をつけてるのは、そのセルをコピペしたり、オートフィルとやらをした時に、セル番号がどんどん増えていくのを抑止するため。「絶対参照」と呼ぶらしい。

別シートのセルを参照する。 :

でも、祝日がずらずら書かれたセルなんて、同シートに入れておきたくないわけで。印刷する時にソイツラも印刷されて鬱陶しい。できれば別シートにしたい。

別のシートにあるセルの範囲を指定する場合は、「シート名!D1:D10」とか「シート名!$D$1:$D$10」と記述すればいい…と解説記事には書いてあったのだけど。手元の環境で試したら、シート名が英数字文字列の時は働いたのだけど、日本語文字列の場合はエラー表示が出てしまった。仕方ないので、シート名はローマ字表記でリネームしてみたりして。

こんな感じで、当面の目的は果たせた、ような気がする。

以上です。

過去ログ表示

Prev - 2013/11 - Next
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project