1/30/2015

Excel。paymentday。末締めの翌末払い。土日祝祭日に完全対応の日程表を作成してみる。


Excel。paymentday。末締めの翌末払い。
土日祝祭日に完全対応の日程表を作成してみる。

WORKDAY関数とEOMONTH関数

企業研修や、マンツーマン研修をはじめ、支払日関係でのご質問が多々あります。
先日もご質問がありました。

そこで、今回から4回にわたって、
様々な支払い条件に基づいた日程表の作成方法をご紹介していきたいと思います。

まず今回は、定番中の定番。

【末締めの翌末払い】

しかも、
土日祝祭日に完全対応した日程表を作ってみたいと思います。

会計経理が詳しくない方、主に学生さんにはなじみが薄いので、
【末締めの翌末払い】というのをご説明しますと、
バイトで月末に精算したら、入金されるのが翌月の末日というのが、
【末締めの翌末払い】ということになります。

ただ、現金で支払いが発生するのならいいのですが、土曜祝祭日だと、
金融機関がお休みということもありまして、会社間の取り決めで、
土日祝祭日の前日に振り込まれるとか、その翌日に振り込まれることになります。

そこで、今回は、この土日祝祭日に対応し、
しかも、土日祝祭日に該当している場合は、
前日と翌日のそれぞれを表示させる日程表を作成していきます。

当然のことながら、ラッキーマンデーの場合は、
3日前の金曜日が表示されるようになっております。

まず、準備するものは、同じシートでも構いませんが、
祝日一覧表を別シートに作っておきましょう。
こんな感じです。

このような祝祭日の一覧表を作成しておきませんと、
ラッキーマンデーには対応できませんね。

では、別のシートに移動して、支払日の日程表を作成していきましょう。

このような表を作成しておきます。フレームですね。ポイントは、C2の2015年。
これは、表示形式で2015を2015年と表示させています。ここがポイントの一つですね。

このC2を2016にすると、2016年の日程表がサクサクと出来上がります。

念のため、C2のユーザー定義書式がどのように設定されているのか確認しておきましょう。

0"年"と設定されています。
A5:A16には、1~12までの数字が入力されています。これが月になります。
では、B5をクリックして、まずは、2015年1月末日を作っていきましょう。
最初に末日が表示される関数があります。EOMONTH関数ですね。

では、EOMONTH関数のダイアログボックスを表示しましょう。

月は当月末日ですので、0と入力しておきます。

そして、開始日ですが、DATE関数を使って、1月の日付を作っていきますので、
開始日のボックスの中にDATE関数を作っていきます。

では、開始日のボックスにカーソルをいれて、名前ボックスの▼から、

DATE関数のダイアログボックスを表示していきましょう。

年には、C2を入力しますが、このあと、下方向に数式をコピーすることを考慮して、
絶対参照を設定しておきますので、$C$2と入力します。

月には、A5。

日には、その月の末日を求めたいだけなので、1で結構ですので入力しておきます。

そして、OKボタンをクリックしましょう。オートフィルハンドルを使って12月まで算出しましょう。
この計算式によって、2月が29日でも大丈夫な締日が完成しました。

続いて、やはり曜日が分かった方がいいので、
C列にB列の締日の曜日を算出していきましょう。

ここは、TEXT関数を使っていきます。

今回は条件付き書式でのアレンジは省略しますが、条件付き書式も加えたい場合には、
以前もBLOGで紹介しましたが、TEXT関数を使う方がよろしいかと思います。

では、C5をクリックして、TEXT関数のダイアログボックスを表示しましょう。

値には、締日のB5を入力します。
表示形式には"aaa"と入録します。
そして、OKボタンをクリックして、オートフィルハンドルを使って12月まで算出します。

これで、曜日が算出されました。E列やG列やI列も同じ方法になりますので、
省略させていただきます。

続いて、【翌末払い】のD列を作成していきますので、D5をクリックしましょう。

先ほども使いました、月末を算出することができる、
EOMONTH関数のダイアログボックスを表示しましょう。締日の翌月末を算出させます。

開始日は、締日のB5を入力します。

月は、翌月なので1を入力します。もし、翌翌末払いならば、2ということになります。

あとは、OKボタンをクリックしましょう。
そして、12月までオートフィルハンドルを使って算出しておきましょう。
また、E列も曜日も算出しておきます。

翌末払い日が算出できました。
【末締めの翌末払い】なので、土日祝祭日に該当していなければこれの日付でOKなのですが、
2月や5月などは、平日ではありませんので、この日ではよろしくないわけです。

そこで、支払日がこの土日祝祭日の前日の日にする場合の算出方法をご紹介していきましょう。

F5をクリックしましょう。そして、ここで登場するのがWORKDAY関数です。

このWORKDAY関数は、土日を除いた日を指定された日数で算出、
しかも指定された日がある場合には、それを除いてくれるという関数なのです。

では、F5をクリックして、WORKDAY関数のダイアログボックスを表示しましょう。

開始日には、翌末払いのD5をクリックして、+1します。
日数には、-1と入力します。
祭日は、祝日一覧のシートに移動して、範囲選択をしますので、
祝日一覧!$A$2:$A$18と入力します。ここも絶対参照を設定しておきましょう。

で、なんで、開始日をワザと+1して、日数を-1するのかというと、
2/28に+1するので、3/1の日曜日になりますね。

土日を除きその開始日の-1の日になりますので、
前日が土曜日でさらにその前の金曜日の日付が算出されるわけです。

金曜日でも+1しますので、土曜日になって-1日されますので、金曜日になるわけです。
つまりこの処理は、平日の場合、前の日にならないための処理にあたります。
仮に金曜日が祝祭日の場合でも、除外しますので、木曜日が算出される仕組みです。

では、OKボタンをクリックして、オートフィルハンドルを使って12月まで算出して、
ついでにお隣の曜日も算出しておきましょう。

これで、支払日が前日の場合が算出できました。今度は支払日の翌日だった場合を算出してきましょう。H5をクリックして、今回もWORKDAY関数を使いますので、WORKDAY関数のダイアログボックスを表示しましょう。

開始日は、D5-1と入力します。
日数には、1と入力します。
祭日は、先ほどと同じ、祝日一覧!$A$2:$A$18と入力します。
絶対参照も忘れないようにしましょう。

今回は、先ほどとは逆で、開始日から-1します。
日曜日だった場合-1しますので、土曜日になり、土日祝祭日を除いて+1しますので、
翌日が算出されることになります。

では、OKボタンをクリックして、オートフィルハンドルを使って算出して、曜日も算出しておきます。

これで、2015年の各月ごとの支払日の日程表が算出できましたね。

2016年の日程表を作成するためには、まず祝日一覧を2016年版にするのと、
C2を2016に入力しなおすことで完成されますので、
経理財務会計部門の方以外でも挑戦してみてはどうでしょうか?

次回は、【末締め翌20日払い】を作成していきます。
WORKDAY関数は今回と変わりませんが、その前が異なりますので、
この末締め翌20日払いの場合もよくご質問がありますので、ご紹介していきます。

1/27/2015

Excel。DATEDIF関数を使って、勤続年数を求めると何かがおかしい?


Excel。DATEDIF関数を使って、勤続年数を求めると
何かがおかしい?

DATEDIF関数

Excelで勤続年数。すなわち、満年齢を求める時に使うことが多い、DATEDIF関数。

このDATEDIF関数は、関数の挿入ボタンからダイアログボックスを表示することができない、
いわば、【隠し関数】なのですが、このDATEDIF関数を使った場合、
会社さんのルールによっては、うまく算出されてないことがありまして、
12月や年度末が近付いてきますと、よくご質問を受けることがありますので、
今回は、DATEDIF関数のご紹介とご質問に関しても書いてみようと思います。

下記の表があります。

まずは、DATEDIF関数の作り方と、その算出の結果を確認してみましょう。
D3に満年齢を算出させてみましょう。見た目で、すでに3歳とわかりますが、
DATEDIF関数をD3につくっていきます。

通常ならfxの関数挿入ボタンをクリックして、ダイアログボックスを表示したりしますが、
このDATEDIF関数は【隠し関数】なので、見つけることができません。

なので、数式バーに直接入力するしかありません。

=DATEDIF(B3,C3,"y")

と入力しましょう。”y”は、大文字でもOKです。
また、引数。()の中は、開始日,終了日,算出する期間(単位)です。
ちなみに、単位には下記の種類があります。

"Y" 期間内の満年数
"M" 期間内の満月数
"D" 期間内の満日数

さて、結果は、3ですね。

自分の誕生日を迎えましたので、3歳で間違いありませんね。
では念のため、C3を2015/1/4にしてみましょう。

当然のことながら、2になりましたね。誕生日前日ですから、2歳で問題ありませんよね。

このように、DATEDIF関数は満年齢などを算出してくれるわけです。
さて、続いでは勤続年数。
算出しなくても、見た目で、4/1~3/31なので、1年働いたということで、
1年契約だったりしますと、このようなケースがあると思われますが、
これ、DATEDIF関数を使って勤続年数を算出してみましょう。

D6をクリックして、DATEDIF関数を作成しましょう。

=DATEDIF(B6,C6,"y")

という数式ですね。”y”は大文字でもOKです。結果はというと…

0と算出されてしまいました。数式も結果も間違ってはいません。

ただ、これでは、勤続年数を算出した結果がイメージと異なってしまいます。
2015/4/1まで勤務しないと1年契約にならないのでしょうか?
これは、会社さんによってルールがあるかと思いますが、

イメージとしては、4/1~3/31で勤続年数には1という結果になってほしい訳です。

このDATEDIFは満年齢をを算出する関数なので、最初にやりましたように、
年齢のように誕生日を迎えると年齢がプラス1されるわけです。

つまり、今回の4/1~3/31のような場合では、一日足りませんので、
+1してあげる必要がありますので、イメージ通りの結果を出したい場合には、
D6の数式を

=DATEDIF(B6,C6+1,"y")

と終了日に+1してあげる必要がありますで、調整が必要となります。

なお、実践実務ということもあって、マンツーマン講習を中心にご紹介しております。

1/24/2015

Excel。Calender。土日祝祭日で色を塗り分ける万年カレンダーを作り込む その6


Excel。Calender。土日祝祭日で色を塗り分ける
万年カレンダーを作り込む その6

カレンダーと条件付き書式

さて、前回に引き続き、
土日祝祭日で色を塗り分ける万能カレンダーを作ってみようの第6回。

今回は、いよいよ条件付き書式 + MATCH関数を使って、
祝祭日だったらオレンジ系の塗りつぶしを設定していきましょう。

前回は、=MATCH(A4,祝日一覧[日付],0)として、#N/Aと算出されたら、祝祭日の一覧にはない。
数字が算出された場合は、祝祭日の一覧にある。つまり祝祭日であることを表しています。

そこで、この

=MATCH(A4,祝日一覧[日付],0)

が0(ゼロ)より大きければ祝祭日になりますので、
=MATCH(A4,祝日一覧[日付],0)>0 
と条件付き書式に組み込んであげれば出来上がるはずですが、

条件付き書式だと、このMATCH関数の引数の中にある、
祝日一覧[日付]が使えないのです。

拡張性を考えてテーブル化して、そのテーブルに名前を付けたのですが、
関数では使えても、条件付き書式では、使えないのです、

そこで、まず、祝祭日のシートに移動して、名前を定義します。
名前だと、条件付き書式で使えるので、設定していきます。

A2:A19を範囲選択して、名前ボックスに、「祝日」と入力すれば、名前を設定できます。
では、改めてシートを移動して、A4:C34を範囲選択して、条件付き書式をクリックして、
ルールの管理をクリックすると、

条件付き書式ルールの管理ダイアログボックスが表示されますので、
新規ルールボタンをクリックします。

新しい書式ルールダイアログボックスが表示されますので、
「数式を使用して、書式設定するセルを決定」をクリックして、ボックスに、
=MATCH($A4,祝日,0)>0と入力しましょう。

そして、書式ボタンをクリックして、セルの書式設定ダイアログボックスが表示されます。

塗りつぶしタブのオレンジ系を選択してOKボタンをクリックします。

あとは、OKボタンをクリックして、
条件付き書式ルールの管理ダイアログボックスが表示されますので、
再度OKボタンをクリックしましょう。

すると、ゴールデンウィークの2015年5月3日から6日までが、
オレンジ系の塗りつぶしになっていますね。

これで、祝祭日と土曜日・日曜日の色分けが出来る万年カレンダーが完成できました。
6回にわたって、ゆっくり説明してきましたが、企業研修さんやマンツーマン講習などをはじめ、
一つの作品を作り上げていくことによって、Excel力をアップすることが出来るわけです。

実際の現場では、単発のスキルではなく、
今回のように複数のテクニックを必要となるので、
様々なテクニックやスキルを覚えていくといいですよね。

1/21/2015

Excel。Calender。土日祝祭日で色を塗り分ける万年カレンダーを作り込む その5


Excel。Calender。土日祝祭日で色を塗り分ける
万年カレンダーを作り込む その5 

カレンダーと条件付き書式


さて、前回に引き続き、土日祝祭日で色を塗り分ける万能カレンダーを作ってみようの第5回。

前回の第4回目で、土曜日に青系の色で塗りつぶしをするところまでご紹介してきました。

まずは、復習をかねて、
日曜日に赤系の色で塗りつぶしの設定をしていくところから再開しましょう。
条件付き書式の登場ですね。

A4:C34まで範囲選択をして、条件付き書式のルールの管理をクリックしましょう。

ルールを一つ作っておりますので、ルールの管理でもOKですね。

条件付き書式ルールの管理ダイアログボックスが表示されますので、
新規ルールのボタンをクリックしましょう。

新しい書式ルールのダイアログボックスが表示されましたら、
「数式を使用して、書式設定するセルを決定」を選択し、ボックスに、
=$B4="日"
と入力して書式ボタンをクリックしましょう。

セルの書式設定ダイアログボックスが表示されてきますので、
赤系を選んでOKボタンをクリックしましょう。

その後再度、OKボタンをクリックすると、日曜日にも赤系の塗りつぶしが設定できましたね。

いよいよ、祝祭日に今度はオレンジ色系の塗りつぶしを設定していきます。
まず準備として、カレンダーは2015年の5月に変えておきましょう。

条件付き書式とMATCH関数のコラボを使うことによって可能になるのですが、
MATCH関数の動きを先に確認しておきましょう。

C4をクリックして、MATCH関数のダイアログボックスを表示しましょう。

検査値には、日付を入力しますので、A4。
検査範囲には、別シートにつくってあった祝祭日一覧の日付を範囲選択します。

テーブルに設定して、テーブル名を設定してありますので、範囲選択をすると、
祝日一覧[日付]と表示されてきます。
照合の種類は、完全一致なので0(ゼロ)と入力します。

OKボタンをクリックしましょう。すると、#N/Aと表示されますが、
まずは、オートフィルハンドルを使ってC34までコピーしましょう。

この#N/Aは、どういう意味なのかというと、祝日一覧[日付]の検査範囲で見つからなかったという意味になります。すなわち、祝祭日ではないということです。
数字が表示されているセルは、祝日一覧[日付]のどこに、
その日にちがあるのかを表しております。

では、どのような発想をしたらいいのかというと、

=MATCH(A4,祝日一覧[日付],0)>0

という式で、条件付き書式を設定してあげればいいように思いますが、
実は、このままでは、条件付き書式を設定することが出来ないのです。

次回は、いよいよ完成を迎えます。条件付き書式の設定から再開していきます。

1/18/2015

Excel。Calender。土日祝祭日で色を塗り分ける万年カレンダーを作り込む その4


Excel。Calender。土日祝祭日で色を塗り分ける
万年カレンダーを作り込む その4

カレンダーと条件付き書式

さて、前回に引き続き、土日祝祭日で色を塗り分ける万能カレンダーを作ってみようの第4回。
今回は、カレンダーの日付を入れるところから、紹介していきます。

ところで、完成はこんなカレンダーを作りたいわけです。

前回の第3回目では、ユーザー定義を使った表示形式で日付を01日と変更して、
曜日をセル参照とユーザー定義を使って、表示形式を曜日に変えたんだけど、
これだと、このあとの条件付き書式が大変なので、
WEEKDAY関数を使わない方法を今回はご紹介していきましょう。

では、B4をクリックします。
曜日を表現するために、ユーザー定義書式を使っていくのは間違いではないのですが、
セル参照ではなくて、TEXT関数を使用していきます。

それでは、TEXT関数のダイアログボックスを表示しましょう。

値にA4
表示形式に”aaa”を入力して、OKボタンをクリックしましょう。
曜日が表示されますので、オートフィルハンドルを使って、数式をA34までコピーしましょう。

ついでに、中央揃えにすると見やすいですよね。

これで、日付と曜日が完成しましたね。A1やB1の年や月を変えてみると、
曜日が変わるのが確認できますよね。

そして、いよいよ、条件付き書式を使って、土日祝祭日に色を付けていきましょう。
まずは、土曜日ならは、青系の塗りつぶしになるように設定していきましょう。

A4:C34までを範囲選択します。

条件付き書式の新しいルールをクリックすると、
新しいルールダイアログボックスが表示されますね。

数式を使用して、書式設定するセルを決定を選択して、ボックスに、

=$B4="土"

と入力して、書式ボタンをクリックしましょう。

セルの書式設定ダイアログボックスが表示されてきますので、

塗りつぶしを選択して青系の色を選択してOKボタンをクリックします。

新しい書式ルールダイアログボックスに戻ってきますので、OKボタンをクリックします。
すると、土曜日に青系の塗りつぶしが設定されていますね。

今回の条件付き書式のポイントは、数式のところでしょうね。

=$B4="土"

B4をクリックしてもいいのですが、絶対参照になってしまいますので、
列固定の複合参照にしないといけませんね。
=$B$4="土"してしまうと、範囲選択したすべてのセルが、
B4が土かどうか?という判断をしてしまいますので、要注意ですね。

なお、前回でセル参照 + ユーザー定義書式で変えてしまうと、条件付き書式の数式が、

=WEEKDAY($A4,1)=7

と入力する必要があります。Excelに慣れている人でしたら、こちらでもOKですが、
Excel力をアップしているさなかの人は、今回の=$B4="土"の方がわかりやすいかと思います。

次回は、同じ方法で日曜日。そして、祝祭日を塗りつぶす方法をご紹介していきます。
祝祭日の塗りつぶしは、ちょっと、Excel力が必要となりますが、もうひと踏ん張りですので、
挑戦していきましょう。

1/15/2015

Excel。Calender。土日祝祭日で色を塗り分ける万年カレンダーを作り込む その3


Excel。Calender。土日祝祭日で色を塗り分ける
万年カレンダーを作り込む その3

カレンダーと条件付き書式

さて、前回に引き続き、
土日祝祭日で色を塗り分ける万能カレンダーを作ってみようの第3回。
今回は、カレンダーの日付を入れるところから、紹介していきます。

ところで、完成はこんなカレンダーを作りたいわけです。

前回の第2回目では、自動的に末日を算出する計算方法をご紹介したところまででした。
数式は、
=IF(A4="","",IF(MONTH(A4)<MONTH(A4+1),"",A4+1))
そして、オートフィルを使って、A34の31日までコピーしました。B1を12に直しておきましょう。

今回は、A列の日付の表示方法を”年月日”から”日”に変更していくところから再開していきます。
A4:A34まで範囲選択をして、セルの書式設定ダイアログボックスを表示しましょう。

ここで、知っておくと便利なショートカットキーがありましたね。
まず、範囲選択のショートカットキーは、先頭のセルをクリックして、
Ctrl + Shift + ↓
でデータの最後までを範囲選択してくれますね。

そして、セルの書式設定ダイアログボックスは、
Ctrl + 1
ですね。この1は、テンキーではダメなので、ご注意ください。
セルの書式設定ダイアログボックスの表示形式は、

分類が日付で種類が*2001/3/14が選択されていますので、
分類をユーザー定義にして、種類を、dd"日" と入力してOKボタンをクリックしましょう。

日付の表示が

01日のように変わりましたね。ユーザー定義を使って表示形式をアレコレアレンジするのも、
Excelテクニックとしては重要なポイントの一つですよね。

dd"日"のdは、day。すなわち日にちを表すものです、
dだけだと、0(ゼロ)は表示されませんが、01と表示させたい場合は、ddとdを重ねますと、
表示することが出来ます。

次は、曜日にとりかかりましょう。
ここからの曜日の作り方が、土日祝祭日での色分けの作業を行う際に、
簡単になるかならないかの分岐点ですので、
まずは、動き方の基本である、
【セル参照 + ユーザー定義の表示形式】というテクニックを紹介しますが、
これだと、土日祝祭日での色分けの作業を行うのが初心者さんだと大変ですので、
次回効率的な方法をご紹介します。

まず、B4をクリックします。曜日も自動的に日付が変わったら曜日も変更させたいので、
=A4と入力しましょう。そう。セル参照ですね。

結果は、A4と同じ01日と表示されましたね。オートフィルハンドルを使って、
B34までコピーしましょう。ただ、これだと曜日になっていません。

ここも、セルの書式設定ダイアログボックスを表示して、
ユーザー定義の表示形式を変更していきます。

分類のユーザー定義を選び、種類はaaaと入力しましょう。OKボタンをクリックすると、

曜日に表示形式が変わりましたね。
このどこがいけないのか?というと、土日祝祭日の色分けをするために、
条件付き書式を使うのですが、どうしても、WEEKDAY関数を使わないといけない訳です。
簡単に土なら青ということが出来ないわけです。

それでは、効率的な方法を次回ご紹介いたします。

※WEEKDAY関数を使った色分け方法は、以前こちらで書いております。
Excel。WEEKDAY関数を使って土曜日に青・日曜日に赤で塗る

ユーザー定義書式+条件付き書式+WEEKDAY関数

http://infoyandssblog.blogspot.jp/2013/10/excelweekday-weekday.html