So-net無料ブログ作成
 記事 か 日記 かは・・・?? (ただ単に、自分の備忘録かも・・・)

あ~~らら ^^;

なんだろね~~

す~~~~かりご無沙汰w


また、ちょくちょく来れればいいかな・・・・w
nice!(0)  コメント(0) 

勤怠管理 PⅡ [EXCEL]

1ヶ月どころか・・・かなり空いちゃいましたw

PⅠで、様々な状況を考える必要があると、書きましたが、
とりあえず、勤怠管理表を作るに当って、条件が少ないものから順次展開していくようにします。

記録の基本となるのは、出勤時間、退勤時間、休憩時間でしょうか。
更に、会社の定時
これらを元に、残業時間の算出があり、又は遅刻、早退等の記録でしょう。

時間の計算は、以前書きましたので、ここでは割愛します。
http://toridon.blog.so-net.ne.jp/2008-09-01

労務時間の計算は、そんなに難しいものではないはず。
基本は、就労時間から、定時時間を差し引いた時間が、残業時間ということ。

ただし、そこで会社の定時時間帯が絡み、深夜時間帯が絡み、
夜中0時を回ったときの入力の仕方も絡んでくるわけで、
それによって数式が複雑になり、より解り難くしている事は有るでしょう。

しかし、基本となる計算は、+-だけ。
順を追って考えていけば、一見複雑怪奇に見える数式でも、すんなり飲み込めると思います。
又、各項目(就業時間、残業時間、深夜残業等)を一つの式で出さない。
作業列を使用したほうが、数式自体もスッキリします。
ですので、後々のメンテもやりやすくなると思います。

とりあえず、簡単に
KINTAI.JPG

就労時間であれば、これだけで何とかいけるでしょう。(休憩時間1時間)
ただ、現実問題として、遅刻、早退、残業等があると思います。

KINTAI2.JPG

S7=MAX(0,E7-$H$4)
T7=MAX(0,$R$4-H7)
U7=MAX(0,R7-"8:")

と、このような式が入力されています。
E7:出勤時刻
H4:既定時刻(出勤8:30)
R4:既定時刻(退社17:30)
H7:退社時刻
R7:就労時間
これで、遅刻時間、早退時間計算できます。
又、残業時間はトータルの就労時間から、8時間を一律で引いていますのであしからず。

とりあえず、今回はここまで。

尚、一般的には15分単位などで丸めていると思いますが、本来残業代は1分単位で請求出来ますので、
あえて丸め処理は省いています。


勤怠管理 PⅠ [EXCEL]

わはは^^ やっぱ、1ヶ月以上空いた・・・・

て、事で・・・とりあえず勤怠管理を・・・

まず、
・出勤、退勤、休憩がどうなっているのか?
・どのような勤務パターンがあるのか?
と、ここまでは大抵気にして作り出すと思うのですが、
間違いなく、使っていくうちに修正、改良(下手すりゃ改悪)になると思います。

何故か?
それは、会社の勤務パターンは解っているが、実際はどのような事が起こるのか?
と言う事が、欠けている場合が多い。

遅刻、早退は、間違いなくあるでしょう。
更に、残業。
しかも真夜中12時を過ぎた場合どうなるのか?(どのような入力をするのか)
そして、連続24時間を超える勤務があるのか?
有給休暇の所得はどのような単位なのか?
(基本は1日単位ですが、半日単位でも違法とはなりません)
こういったことを考えて作りこみをしないと、作ったは良いが、使いにくい。
修正が頻繁に起こる。
修正、修正の繰り返しで何処がどうなっているのか解らなくなった。

等と言うような事にもなりかねません。

又、時刻シリアル値は、無限小数になりやすく、状況によっては、
演算誤差が拡大され、計算が正しくならないことが往々にしてあります。

んでは、そういったことも踏まえて組み立てていきます。


・・・・続く
(又1ヵ月後かな~~(ーー;))


勤怠管理 P0 [EXCEL]

エクセルで、勤怠管理。

と、言うとどんな事?
まあ、簡単に出来るものから、行きませぅw

取り合えず、労働基準法は・・・法律文を乗っけると、
メタクタ訳解らん様になって来るから・・・(頭わり~からさww)
http://www.roudousha.net/
ここを見てます。

取り合えず、一日の時間を簡単に区分けするなら、
22:00~翌日5:00までが、深夜勤務時間帯。
通常の残業と同じ割り増し賃金になります。
又、深夜時間帯に残業が掛かった場合は、
残業割り増し25%+深夜割り増し25%の50%割り増しになります。

一日の労働時間 8時間
一週  〃    40時間
尚、1ヶ月以上、1年以下の期間を定めての変形労働時間制をとる場合は、
その期間の平均労働時間が週40時間を超えてはダメ。

残業は、1分単位で請求可能。
すなわち、使用者は1分単位で残業時間を計算する必要があります。

通例では、15分、或いは30分で区切って計算していると思われますが、
はっきり言って、それは違法で有る可能性が高いです。

可能性が高いと言ったのは、
例えば、定時が17:00の会社で、17:13にタイムカードを押した(退社)
した場合に、残業計算で17:15退社扱いの、15分残業と、計算している場合は、
労働者に不利益にはならないため違法ではありません。
ただし、このような計算をしている会社は、実際あるのでしょうかね。

普通の感覚では、上記の場合13分は切り捨てて、17:00退社扱いで、
残業時間は0というように計算しているのが殆どなのではないでしょうか。
そういった場合は、労基法上は違法です。

上記の事を踏まえて、ここでの勤怠管理に関わる時間計算は
切捨て計算はいたしませんので、悪しからず。

・・・・続く・・・
(何時、続きが書けるかな~~(ーー;))

タグ:勤怠管理

My PC [PC]

メインPC
ケース:何処だったか・・・忘れたww
電源 :ケース付属の500W(だったと思うww)
M/B :ASUS M2N-E
CPU :AMD ATHLON64x2 4600+
MEM:UMAX 1GBx2 DDR2-800(PC6400)
G/B : ASUS EN6600GT/128MB
DRIVE : ASUS DRW-1814BLT LG GSA-H62N
HDD : Seagate 320GB、日立IBM80GB 以上SATA
     日立IBM 80GB、Seagate 40GB メーカー忘れ 8.4GBx2、3.2GBx1以上E-IDE(ATA)
Display : 三菱RDT201WM202WM
OS:Windows XP Home Edition SP3

サブ1
ケース:Antec Solo Black
電源 :メーカー忘れたw650W
M/B :Gigabyte GA-EP45-DS5
CPU :Intel Core2Duo E8400
MEM:Corsair DDR2-800 1GBx2
G/B :玄人志向 GeFo8800GT 1GB VRAM
Drive : Pioneer DVR-A16
HDD : 日立IBM 320GB SATA
Display : Acer 19インチワイド
OS Windows XP Home Edition SP3

サブ2
ケース:フェイスオリジナル
電源 : 600W
M/B : ASUS 型番忘れw
CPU : Intel Core2Duo E6750
MEM : ノーブランド DDR2-800 1GBx2
G/B : ASUS EN7300GS 256MB
HDD : 250GB(メーカー忘れ)SATA
Display : フェイス格安19インチワイド
OS : Windows Vista Home Premium

サブ3
Toshiba Dynabook AX740LS
OS:Windows XP Home Edition SP3

( ̄~ ̄;) ウーン・・・・
サブ3のノートは別として・・・・
メインで使用してるPCが、一番貧弱だなや・・・・
まあ、ネトゲしないから、いっかw

アクセス・・・ [ACCESS]

とりあえず、ACCESSの簡単な、(本当に簡単な)説明?

構成要素
・テーブル
  データを保存する所。テーブルを開くと、一見EXCELのシートのように見えるが、
  EXCELとは、データの持ち方が全く違います。
  フィールド(横の項目)と、レコード(縦)
  EXCELのように、数式を入れておくことは出来ない。
  あくまでも、文字列にしろ、数値にしろ値での保存。
・クエリ
  テーブルを基にして、表示するフィールド、レコードを制御するもの。
  クエリの種類
  ・選択クエリ
     1つ、又は複数のテーブル(又はクエリ)から必要な項目を選んで表示する。
  ・クロス集計クエリ
     テーブル(クエリ)から、項目別に集計したもの。
     EXCELのピポットテーブルのようなもの。
  ・テーブル作成クエリ
     その名の通り、1つ、又は複数のテーブル(クエリ)を元に、
     新たにテーブルを作成するクエリ。
  ・更新クエリ
     テーブルに入力されている値を別の値に置き換える(更新)する。
  ・追加クエリ
     1つのテーブルに、他のテーブル(クエリ)のレコードを追加する。
     フィールドは、合わせなければだめ。
  ・削除クエリ
     テーブルから、該当するデータを削除する。
  ・ユニオンクエリ
     複数のテーブル(クエリ)を一つにまとめて表示する。

 そのほかにも、有るけど・・・まあ、これくらいでなんとかなるっしょ。。ww

・フォーム
 ACCESSではテーブルに直接データを入力する事は基本、やりません。
 データを保存したいテーブル、或いはクエリ(クエリで、指定されたテーブルにデータを保存します
 その場合、追加・変更が出来るようにクエリを作らないとダメです)
 を基にして、入力用のフォームを作り、そこでデータを入力します。
 それ以外に、データ検索用のフォームを作ったり、表示用のフォームであったり、
 又は、フォームを選ぶための、メニューであったり。
 ACCESSを使用するに当っては、殆どがフォームを立ち上げて処理するようにします。

・レポート
 テーブル、クエリを基にして印刷するためのもの。
 どういったレイアウトを取るのかを、デザインします。
 ただし、EXCELのような自由なレイアウトは無理があります。
・マクロ
 EXCELでも同じ文句はありますが、EXCELのマクロとは、全く違います。
 用意された項目(?)を組み合わせて作っていきます。
・モジュール
 VBAです。

と、まあ、こんなところか・・・・


( ̄~ ̄;)ウーン・・・ [雑感]

困った・・・(ーー;)

MS系のブログにしようと言う事で、最初にWORD、EXCEL、ACCSESS
って、書いたけど・・・・

はっきし言って、WORDは・・・・よ~判らんww
文章書くだけ。。。
ただ、それだけのもの。。

と言う認識しかないし・・・^^;;;

それも、本当にそれだけなら、EXCELでも十分やし・・・


って、事で・・・・

WORDの機能なんて知りまっしぇんww

だ~ら、WORDについては・・・・な~~~~~~~~んも書けまっしぇん。。^^;;

休日設定 [EXCEL]

先の日記では、祝日の設定を書きました。
で、今回は休日の設定です。

休日は基本的に
1)祝日が日曜に当たった場合その日以降で直近の平日を休日にする。(振替休日)
2)その日の前後の日が祝日の場合、その日を休日にする。(国民の休日)
の、2種類があります。

1)については、GWの祝日3連休以外では基本的に月曜になります。
 と言う事は、ハッピーマンデー以外の祝日が日曜かどうかを調べれば、決定できます。
 元旦の日を例に取れば、元旦が日曜なら、翌1月2日を振替休日にすればOK
 =IF(WEEKDAY(DATE($A$1,1,1))=1,DATE($A$1,1,2),0)
 まあ、これで元旦が日曜なら1月2日も設定されます。日曜以外なら0にしています。
 同じように、日付固定の祝日と、春分・秋分の日について設定すれば大丈夫でしょう。
 (振替休日にならない時、0にするのなら、=DATE($A$1,1,2)*(WEEKDAY(DATE($A$1,1,1))=1)でも、同じ事になります。)
 後は、5月のGWですが、これもちょっと見方を変えれば、5月6日が、月曜~水曜であれば、
 振替休日になります。ですので、
 =IF(WEEKDAY(DATE($A$1,5,6),2)<4,DATE($A$1,5,6),0)
 又は、=DATE($A$1,5,6)*(WEEKDAY(DATE($A$1,5,6),2)<4)でも。

2)は、ちょっと厄介かも。
 現行の祝日で、このように祝日と次の祝日の間が1日になるのは、9月の敬老の日と秋分の日しかありません。
 更に、共に変動する祝日になります。
 ですので、毎年これが発生するわけではありません。来年2009年は、敬老の日と、秋分の日の間が1日になりますので、祝日法改正後初の適用になります。
 では、どのように確認するのか?
 敬老の日は、いわゆるハッピーマンデーです。ですので、秋分の日が水曜でなければなりません。
 又、同時にその秋分の日が属する週の月曜日が9月の第3月曜日で無ければなりません。
 これを数式にすると、
 =IF(AND(WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4,
  DATE(A1,9,INT (23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))),3)=DATE(A1,9,1)-WEEKDAY(DATE(A1,9,1),3)+7*(3-(WEEKDAY(DATE(A1,9,1))=2))),DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))-1,0)
 オレンジ秋分の日  敬老の日
 と言う事になります。
 まあ、それぞれの日付は、別セルで出しているでしょうから、そのセルを指定すれば短くなりますが。
 ただ、計算上は当面の間は秋分の日が23日の水曜日の場合、22日が国民の休日になるようです。
 2032年に9月20・21・22と、なりそうです。(あくまでも計算上)
 ですので、国民の休日判定の式も、
 =IF(AND(INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))=23,
   WEEKDAY(DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4))))=4),DATE(A1,9,22),0)
 で、いいのかな・・

SSS.JPG

祝日・休日の設定をリスト形式で入力しておけば、
後は年を指定するだけで、祝日は計算できると思います。
(一応、祝日リストとしてZ2:AB26までの範囲を設定すれば、カレンダー上に祝日を赤にするなどは簡単に出来ると思います。)


関数で祝日設定 [EXCEL]

前の日記でカレンダーの祝日の色を変える事は説明しましたので、
今回は毎年の祝日を関数で設定する方法を。

前回の日記に書きましたが、
日付固定の祝日は年を変更するだけで大丈夫です。
従って、カレンダーその3のレイアウトをそのまま流用すると

  1月1日 元旦   =DATE(A1,1,1)
と言うように、DATE関数で簡単に設定できます。

では、毎年変動がある祝日はどうするのか?

変動がある日としては、成人の日のように、
〇月の第〇月曜日 と言うものと、
春分・秋分の日 があります。

とりあえずは、成人の日を出す数式として
=DATE(A1,A3,1)-WEEKDAY(DATE(A1,A3,1),3)+7*(2-(WEEKDAY(DATE(A1,A3,1))=2))
青字は、月初の日付、赤字は、第2週のです。
従って、青字の日付を7月1日、赤字の週を3に変更すれば、海の日の日付が出ます。
同様に、敬老の日・体育の日も関数で設定できます。

後は、春分・秋分の日ですが、これは天体の動きに関係する日付です。
太陽が、天球上の赤道を通過する時の日付になります。

これは天体の動きに関わる日付ですので基本的には計算で求められます。
ただし、祝日となる日は、前年の2月に発行される官報で正式に決定されるため、 2年後以降の春分・秋分の日付は確定とはならない。

簡易的な方法では、西暦年を4で割った余りがいくつになるかで、日付が計算できます。
が、せっかくですのでもう少し正確に計算しようと思います。

春分の日
 1980-2099年  =INT(20.8431+0.242194*(年-1980)-INT((年-1980)/4))
 2100-2150年  =INT(21.8510+0.242194*(年-1980)-INT((年-1980)/4))

秋分の日
 1980-2099年  =INT(23.2488+0.242194*(年-1980)-INT((年-1980)/4))
 2100-2150年  =INT(24.2488+0.242194*(年-1980)-INT((年-1980)/4))

に、なります。
今でしたら、2099年までの式で大丈夫でしょう。
したがって、各々の式にセル番地を当てはめて、
春分の日  =DATE(A1,3,INT(20.8431+0.242194*(A1-1980)-INT((A1-1980)/4)))
秋分の日  =DATE(A1,9,INT(23.2488+0.242194*(A1-1980)-INT((A1-1980)/4)))
という数式で計算できます。

これで、祝日法にある祝日の設定は数式で決定できます。

後は、振替休日、国民の休日と言われている日付を確定させます。
これについては、また後日。


・・・・忙すぃ・・・と、言いながら書いてるσ(・・)・・・・^^;

祝日設定 [EXCEL]

祝日とは、国民の祝日に関する法律(祝日法)によって定められる日を言います。
参考 http://ja.wikipedia.org/wiki/祝日法

色々と経緯がありますが、今現在祝日は、
1月1日      元旦       ★
1月第2月曜日    成人の日     
2月11日     建国記念の日   ★
3月20日頃     春分の日
4月29日     昭和の日     ★
5月3日      憲法記念日    ★
5月4日      みどりの日    ★
5月5日      こどもの日    ★
7月第3月曜日    海の日
9月第3月曜日    敬老の日
9月23日頃     秋分の日
10月第2月曜日   体育の日
11月3日     文化の日     ★
11月23日    勤労感謝の日   ★
12月23日    天皇誕生日    ★

の、年間15日です。(★は、日付固定の祝日、それ以外は変動します)
又、それ以外に
祝日ではない、休日があります。振替休日、国民の休日といわれてるものがそうです。
今年(2008年)の場合は、
5月6日 11月23日の2日が、振替休日になります。

では、これをEXCELのカレンダーにどのように反映させればよいか。

それはカレンダーとは別の場所に祝日リストを
設けて設定する方法が、後のメンテも考えて一番いいでしょう。

例えば、その3で示したカレンダーを例に取ると、
祝日リストを、AA列に設定し、リスト範囲に「祝日リスト」と、名前をつけます。
そして、日付のセルをすべて選択し、条件付書式設定で
「数式が」 =COUNTIF(祝日リスト,B3) (B3セルをアクティブにした場合)
書式設定でフォント色を赤に設定すればOK

では、毎年祝日を入れなおさなければならないのか?
関数を使って、祝日を設定できないか?

当然、このような希望は出てくると思います。

その方法は、また後日

カレンダー その3 [EXCEL]

その2までは、一月を横一列に取っていましたが、
今回は、一月を日~土までの一週間のブロックで表示してみましょう。

CL3-1.JPG

このような形で、カレンダーを作ります。

要領は、前の日記と同じ事です。ただ単に、表示が一週間単位で下の行に行くというだけです。

ただ、週が変わると行が変わるために、その2などで示した数式を変更する必要があるだけです。
(最も、結構面倒くさいと言うだけですが・・・)

毎月の表示範囲左上のセルには、その2で、示した数式
=DATE($A$1,$A2,1)-WEEKDAY(DATE($A$1,$A2,1))+1
これの、赤字の部分をちょこっと変更、
=DATE($A$1,A3,1)-WEEKDAY(DATE($A$1,A3,1))+1
と、変更すれば各月の左上のセルに、そのままコピーできます。

後は、日付ですが、(1月を例に)
B4=B3+7
これをB8セルまで、コピー。
C3=B3+1
これを、H列、8行目までコピー。

そして、このブロック範囲(B3~H8)を、他に11個コピーすれば、
年間のカレンダーが出来ます。

CL3-2.JPG

条件付書式で、月が違う場合フォント色を背景色と同じに設定すれば、
違う月は見えなくなります。
設定範囲は、上図の範囲で大丈夫でしょう。

ちなみに、ここまでの説明で行くと、各月7列6行すべてに入っていますが、
必要の無い部分もあると言う事。
要するに、一月は最大で31日。そして、毎月の1日は、
最も遅い時で、1行目の7列目。それを計算すると、数式は最大でも
6行目の2列まででOKということです。
ですので、6行目の3列目~7列目は不必要と言う事です。


カレンダー その2 [EXCEL]

その1で、取り合えず一月(ひとつき)の表示を書きましたが、
これで、複数月、或いは年間の表示となると、各月に曜日を表示する事になり、
非常に見づらくなります。

ですので、曜日を固定させて、各月の1~末日までの日付を
変化したほうが、見やすくなるでしょう。

と言う事で、その方法を・・

日付関数のところで示した数式にそのヒント(と言うか、そのものかな)になる
数式を示してますので、それを利用すればできるでしょう。

その数式は、
常に、今週日曜日を表示(一週間は日~土)
  =TODAY()-WEEKDAY(TODAY())+1
です。
この、TODAY()を、毎月一日にすれば、その週の日曜日の日付が確定されるわけです。

NENCL-1.JPG

A1:年  A2~A13:月 を、数値で入力、そして
B2=DATE($A$1,$A2,1)-WEEKDAY(DATE($A$1,$A2,1))+1
これを、下方にコピー。
これで、毎月の一日の日が属する週の日曜日の日付が確定できます。
C2=B2+1
これを右方向AL列まで、下方向13行目までコピー
日付のセルは、表示形式で、「d」に設定。
これで、日付のみの表示になります。

後は、条件付書式で該当の月では無い日付のフォント色を、セルの色と同じにすれば見えなくなります。
更に、土日に色をつけるように条件付書式設定をすれば土日に色をつけることが可能です。

NENCL-2.JPG
土日のセルは決まってるんだから・・・
普通に、フォント色を変更すればいいじゃん・・

取りあえずは、これで年間カレンダーの出来上がりになります。

後、必要になるとしたら(というか、必要でしょう^^;;;)祝日設定。
これは、また後日改めて。


カレンダー その1 [EXCEL]

EXCELで、カレンダーを作る。

一番手っ取り早い(と、思う)方法。
日付表示は固定で、曜日を変化させる。
CL1.JPG
A1に、年 B1に月を入力
(セルの書式設定にて、ユーザー定義でA1:0"年"  B1:0"月" と、してます)
日付は、1~31までを数値で入力。
B2セルに、=DATE($A$1,$B$1,B3)として、表示形式で 「aaa」としています。
(従って、2行目の曜日の実データは日付シリアル値になります)
A1、B1セル指定が絶対番地になっている事に注意してください。

これで、その日に対応した曜日を表示できます。
大の月、小の月、又土日の色分けを考えなければこれでOKでしょう。
ただ、やはり小の月は31(2月は29~31)を、隠したいですし土日の色は変えたいですよね。
その場合は、条件付書式設定を使います。

CL1-2.JPG

曜日、日付のセルを全部選択(B2~AF3)し、B2セルをアクティブにした状態で、
条件付書式で、
 数式が =WEEKDAY(B$2,2)>5

WEEKDAY関数のセル指定が相対参照になっていることに注意してください。

又、先の日記でも書きましたが、WEEKDAY関数の第2引数に2を指定する事によって、土曜日=6、日曜日=7 になります。
従って、WEEKDAY関数の返り値が5より大きければ 土日であると言う事になります。

こうして、書式設定でフォント色を赤に設定すれば、土日の曜日・日付両方が赤字になります。
更に、29日以降のセル範囲(AD2~AF3)を選択し、もう一つの条件を設定します。(AD2をアクティブに)

条件付書式設定の、条件2(条件1は、土日の書式設定で使用しているため)で、
 数式が  =MONTH(AD$2)<>$B$1
書式で、フォント色をセルの背景色と同じにすれば見かけ上は判らなくなります。
そして、ここからが重要
このままの状態では、例えば、1日が、土曜か日曜だった場合条件1で設定した土日の判別が優先されます。
従って、条件2で設定した小の月で31を隠すような書式設定が反映されません。
今年(2008)で言えば、3月の1・2が土日にですので、このままでは2月の時に3月1・2土日の条件が反映されて、曜日と、日付(表示上は30・31)が赤になって見えてしまう)
それを防ぐために、条件1と、2を入れ替える必要があります。
まあ、単純に最初から入れ替えた形で入力もいいのですが、
条件3に、条件1の設定を入力して、条件1を削除。
と言った方法も・・・
(どっちがやり易いかは、人によって違うかも)

とにかく、条件付書式は、条件1から順次適用され、条件が合えばその次の条件は無視するようになっています。
(2007からは、条件の適用順序が設定できるようになってるようです。)

数式の意味は、シリアル値から月を求め、その数値がB1セルに入力してある数値と違う場合に
フォント色を背景色(多分普通は白)にする。
と言う事です。


日付関数 使用例 [EXCEL]

とりあえず、簡単(?)な、ものから・・・

常に当月の1日を表示
  =TODAY()-DAY(TODAY())+1

常に、当月末日を表示
  =EOMONTH(TODAY(),0)
 分析ツールを組み込んでいないとき
  =DATE(YEAR(TODAY()),MONTH(TODAY())+1,)

常に、今週日曜日を表示(一週間は日~土)
  =TODAY()-WEEKDAY(TODAY())+1

常に、今週土曜日を表示(一週間は日~土)
  =TODAY()-WEEKDAY(TODAY())+7
    (芸が無いナ~~^^;;)


曜日を表示
書式設定で、(2008/9/7で、入力の場合)
   aaa   aaaa    ddd    dddd
   日   日曜日    Sun    Sunday

書式設定で yyyy/mm/dd (dddd) で、
      2008/09/07 (Sunday)
の、表示になります。日本の元号表示は、
      gggee年mm日dd日 (aaaa) で、
      平成20年09月07日 (日曜日)
の、表示です。

元号表示
  g:アルファベット一文字 平成→H 昭和→S 大正→T 明治→M
  gg:漢字一文字 平成→平 昭和→昭 大正→大 明治→明
  ggg:漢字で、フルに表示

書式設定では、日付表示を
  平成20年 9月 7日
  2008年 9月 7日
と言うように、2桁にならない月、日の十の位をスペースを入れることは出来ません。
やろうとするなら、関数で入力セルとは別のセルに表示させるか、VBAで処理させるかになります。

関数での表示
 色々と手は有りますが
   =TEXT(A1,"ggg")&RIGHT(TEXT(A1,"_e年"),3)&RIGHT(TEXT(A1,"_m月"),3)&RIGHT(TEXT(A1,"_d日"),3)
   =SUBSTITUTE(SUBSTITUTE(TEXT(A1,"ggg.ee年.mm月.dd日"),".0","_"),".",)
等・・・・
注意・・A1,"_e年"等の、_ は、スペースの意味です

※ 日付の年月日を揃えたいが為のスペース表示だと思いますが、
  フォントがプロポーショナルフォントのままでは結果がそぐわなくなると思います。
  フォントは、等幅フォントにしないと年月日が揃わなくなるので注意が必要


曜日を、文字列として所得したいとき
   =TEXT(A1,"aaaa") ・・・日曜日

 EXCEL関連の書籍等で、たまに
    =TEXT(WEEKDAY(A1),"aaaa")
  等と記入されているものを見ますが、これは間違いです。
  確かに曜日の表示は合っていますが、結果オーライの間違った使い方です。



年齢を出す(DATEDIF) [EXCEL]

指定した日の或る人の年齢を求める。

NENREI.JPG

日付に絡む関数ではあえて書かなかった関数を使用してます。
実は、この関数EXCELでは、HELPにも、関数一覧にも出てきません。

少し前、(2007が出る前)であれば、書いていたかも解りませんが。

この関数は、EXCELが市場のシェアを奪う前、表計算ソフトといえば
LOTUS 1-2-3 と、言われてた時代があり、その1-2-3に有る関数です。
(それ以外にも、互換性を持たせるためにMSが用意した関数はいくつかありますが)

1-2-3では、正確な計算がなされていた関数なのですが、EXCELで使用すると
或る条件下では、間違った答えが返ってきます。
これは、「DATEDIF バグ」等で、ネットで検索すれば色々なサイトで書かれています。

で、2003まではまだそういった答えが返ってくると言うことを理解して、
何とか使う事ができた関数ですが、
2007になってからは、そのバグが修正されるどころか、
ますます「何で?」「どうしてこうなるの?」
と言うような結果が返ってくるようになったようです。
(私は、まだ2007は持っていないため、自分で確認できませんが)


一応、使い方としては
=DATEDIF(開始日,終了日,単位)
です。

終了日は、開始日以降の日付になります。
単位は・・・・Y  開始日から、終了日までの経過年数。
     ・・・・・M  開始日から終了日までの経過月数
     ・・・・・D  開始日から終了日までの経過日数
     ・・・・・YM 開始日~終了日の年を考慮に入れない月数
     ・・・・・YD 開始日~終了日の年を考慮に入れない日数
     ・・・・・MD 開始日~終了日の年月を考慮に入れない日数
となります。

セルA1=1990/5/5  セルB1=2008/9/1 と言う条件で、
=DATEDIF(A1,B1,"y")=18
=DATEDIF(A1,B1,"M")=219
=DATEDIF(A1,B1,"D")=6694
=DATEDIF(A1,B1,"YM")=3
=DATEDIF(A1,B1,"YD")=119
=DATEDIF(A1,B1,"MD")=27

と、なります。
(EXCEL2003にて)

タグ:Excel 関数 日付

時刻 [EXCEL]

時刻関数を、(時間とは別です)

TIME(時,分,秒)・・・指定した時刻シリアル値を返します。
     =TIME(16,5,55)=0.670775462962963 (16:05:55)
※ 時・分・秒に、指定できる数値は、それぞれ0~32768
  すべて、1日24時間で計算された、時刻シリアル値になります。

TIMEVALUE(時刻文字列)・・・文字列として入力された時刻の時刻シリアル値を返す。
     =TIMEVALUE("16:05:55")=0.670775462962963

※※ TIME TIMEVALUE 共に、返す値は0~0.999988425925926

HOUR(時刻シリアル値)・・・そのシリアル値の時を返す
     =HOUR(TIME(16,5,55))=16
※ 返す値は 0~23

MINUTE(時刻シリアル値)・・・そのシリアル値の分を返す
     =MINUTE(TIME(16,5,55))=5
※ 返す値は 0~59

SECOND(時刻シリアル値)・・・そのシリアル値の秒を返す
     =MINUTE(TIME(16,5,55))=55
※ 返す値は 0~59


日付・時刻共に、時の流れの或る一点の日付時刻という事です。
ですので、日付・時刻についてはマイナスは有り得ません。
従って、マイナスの日付・時刻は考慮されていません。
(★ ただし、WINDOWSで、デフォルトのままでは、です。或いはWINDOSでも、
 ツール→オプション→計算方法で「1904年から計算する」にチェックを入れれば、  マイナスの計算も可能になります)


時刻と、時間は別物です。
時刻とは、先にも書いたように或る瞬間です。つまりは
時間は、或る2点間の時刻の差。いわゆる経過時間。長さ
という事になります。
従って、時間と言った場合は24時間を超える値も有れば、マイナスの時間も
概念としては有ります。
が、時刻は知っての通り、0時~24時未満と言う事になります。


日付(追記) [EXCEL]

週がらみの関数を忘れたので・・・・

WEEKDAY(シリアル値,種類)・・・シリアル値に対応する曜日の数値を返す。
      種類     日  月   火   水  木   金  土
   1(or 無指定)  1   2   3   4   5   6   7
       2      7   1   2   3   4   5   6
       3      6   0   1   2   3   4   5
    =WEEKDAY("2008/9/1")=2
    =WEEKDAY("2008/9/1",2)=1
    =WEEKDAY("2008/9/1",3)=0

WEEKNUM(シリアル値,基準)・・・・シリアル値で示された日がその年の第何週目なのかを返します。
    基準 1 1週 日曜~土曜
    基準 2 1週 月曜~日曜

    =WEEKNUM("2008/8/31",1)=36
    =WEEKNUM("2008/8/31",2)=35


あ、後これを忘れてたww
TODAY()・・・現在日付を表すシリアル値を返します。

とりあえず、日付に関わる関数を・・・

これ以外にもまだありますが、あまり使わないだろうな~~って思うのは載せてません。


タグ:Excel 関数 日付

日付 [EXCEL]

シリアル値がらみで、日付と時刻の関数を、ちょこっと ^^;;

DATE(年,月,日) ・・・その日付に対応するシリアル値を返す。
       =DATE(2008,9,1)=39692
YEAR(シリアル値) ・・・シリアル値に対応する西暦年を返す。
       =YEAR(39692)=2008
MONTH(シリアル値) ・・・シリアル値に対応する月を返す。
       =MONTH(39692)=9
DAY(シリアル値) ・・・シリアル値に対応する日を返す。
       =DAY(39692)=1
DATEVALUE(日付文字列) ・・・文字列として入力された日付をシリアル値に変更
       =DATEVALUE("2008/9/1")=39692
EDATE(日付,月数) ・・・日付から、指定した月数後の日付シリアル値を返す。
      ただし、日付が大の月の月末日の場合、指定した月数後の月末日付を返します。
      ex =EDATE(DATE(2008,1,31),1) では、2008/2/29 を返します。
EOMONTH(日付,月数) ・・・日付から指定した月数後の月の末日シリアル値を返します。
       =EOMONTH("2008/9/1",1)=39752=2008/10/31
NETWORKDAYS(開始日,終了日,祭日)
       ・・・開始日から終了日までの土日を除いた日数を計算。
         祭日に、祝日、又は会社休業日を入れた場合、その日数も引きます。
         (普通は、祝日リストなどを作り、その範囲を指定します)
       =NETWORKDAYS("2008/9/1","2008/9/30")=22
       =NETWORKDAYS("2008/9/1","2008/9/30",{"2008/9/15","2008/9/23"})=20
WORKDAY(日付,日数,祭日) ・・・日付から、土日を除いた日数後のシリアル値を返します。
         祭日に、祝日、又は会社休業日を入れた場合、その日数も考慮します。
         (普通は、祝日リストなどを作り、その範囲を指定します)
       =WORKDAY("2008/9/1",20,{"2008/9/15","2008/9/23"})=39722=2008/10/1

まあ、HELPに載ってることですけど・・


タグ:Excel 関数 日付

シリアル値 -Ⅱ [EXCEL]

まあ・・・Ⅱって程でもないのだが。。

EXCELでの時刻入力でよく目にするのが、
「入力は1212で、表示を12:12に出来ませんか?」
というような質問。

これは、出切る出来ないという事だけを考えるなら、出切るです。
セルの書式設定で、「00!:00」又は、「0!:00」で、表示上は時刻のように見えます。

しかし、やらない方が良い

なぜなら、表示上12:12となっていても、その実、1212という数値です。

そう、見た目上は時刻のように見えるが、実データは千二百十二という数値だから。

時刻はあくまでも時刻シリアル値として入力したほうが、後々の計算が楽になります。

見かけ上時刻に見えて、その実シリアル値ではない数値だったら・・・
その後の数式が全く変わってきます。
例えば、普通の足し算を考えて見ましょう。

12:12 の、1時間50分後は何時何分?

この、12:12がシリアル値で(A1セルに)入力されていたのなら、数式としては
=A1+”1:50”
この数式で、セルには14:02と、表示されます。

しかし、この12:12が、表示上こうなっていただけだとするなら、
上記の数式を入力してもセルには1:50或いは、1903/4/26 1:50又は、12:12と表示されてしまいます。

これは、先にも書きましたが、シリアル値は1日を数値の1として計算された値である事に起因します。
従って、表示上12:12である場合そのデータは1212.
そこに、”1:50”を加算するわけですから、セル内のデータとしては
1212+1/24+(1/24/60)*50 の、 1,212.07638888889 という数値になります。

これを1212の入力で表示上12:12にしている場合ではそのまま12:12という表示のままです。
又、書式設定を時刻にした場合、小数点以下の 0.07638888889 がシリアル値として認識され、
表示は 1:50になります。
又、同時に整数部の1212がシリアル値となり1900年1月1日を1とした日数になり、
1903年4月26日が、シリアル値で認識された日付になります。

すなわち、表示上で時刻のように表示しただけでは、
それを計算に使用する場合は一度シリアル値に変換する必要が出てきます。

或いは、セルの値はそのままで、加える”1:50”を数値の”150”とした場合は
100未満の数値を計算し、それが60以上になった時に桁上がりをさせるように
数式に手を加える事となります。

いずれにしろ、シリアル値で入力されたデータの場合単純な数式で収まる計算も、
たった一つのキー「:」の入力を省いたがために複雑な数式を作らなければならないことになります。
まあ、数式なら1度組み立てれば、毎回入力する事は無いのですから、
その手間より長い目で見た場合入力を4桁の数値にしてくれたほうがありがたい。
という意見もあるでしょう。

しかし、一旦組み立てた数式をメンテする必要は無いのか?
又は、そのブックを引き継がせる場合、大丈夫なのか?
こういったことは、必ず起こりえることではないでしょうか。

こういった事を考えると、やはり時刻は、時刻シリアル値での入力。
これが一番スマートな事だと思いますが。


最も、計算には使わない。というのであれば別でしょうが。


シリアル値 [EXCEL]

某サイトで紛糾してたから・・・って訳じゃないのですが。

日付シリアル値
   1日を1として、1900年1月1日を1とした数値。(ただし、EXCELで、計算方法を1900年から計算するにしていた時)
   この場合、EXCELのバグか、仕様かで、架空の日付1900年2月29日が存在する。
   従って、今日(2008年7月30日)は、39659という数値になる。

時刻シリアル値
   1日を1とした計算。従って1時間は 1/24 になる。

EXCELに於いては、日付、時刻を入力すればそのような表示になるが、
これはあくまでも先に述べたように表示であり、データとしては、単なる数値である。

従って、数値である以上計算は容易に行う事ができる。
ただ、ここで配慮しなければならないこととして、時刻の計算は注意を要する。
すなわち24時間を1とした数値で時刻が管理される以上はその数値は無限小数になり、
計算上では、影響がない範囲で丸められた数値を使う事になる。
しかし、その結果をまた計算に使うというようなことがある場合、誤差は大きくなっていかざるを得ない。

その結果として、微妙なところで計算が合わないことが十分に起こりえてしまう。
そこを解らずに(知らないで)数式を組み立てた場合、予期しないような結果が表示されてしまう事がある。

表示形式 [EXCEL]

表示形式とは、呼んで字の如く、セルに入力されている値を、どのように表示するかを決める形式の事である。

この表示形式は、その殆どが、数値に対する形式である。

文字に対しては、入力した文字に何らかの文字を加えて表示するくらいしか出来ない。
或いは、入力された値が何であろうとある特定の文字しか表示しないようにする。

位である。


又、表示形式ですので、あくまでも表示しているだけです。
セルの値がそのようになるわけではない。


タグ:Excel 表示

何はともあれ・・・ [雑感]

WORD : ワープロソフト
       文章を打つためのもので、文字飾り・書式が豊富に用意されてます。

EXCEL : 表計算ソフト
       数式を駆使して計算を容易にする。
       表示レイアウトを割りと自由に、かつ簡単に出来る。
       業務ソフトの代名詞的な存在に

ACCESS : データベースソフト
         データとデータの関連付けがEXCELより遥かに勝る。
         反面、データベースの基本が解っていないと使いこなせない。
         EXCELライクに使用すると、後々根本から作り直す事になりかねない。
         表示レイアウトにEXCELほどの自由度は無い。
         
と、まあ簡単に・・・・

もう一個 [雑感]

別系統で、ということで作りました。

取り合えず、こっちはMS(モビルスーツちゃうよ)系の
ものにして行こうかと。。。

ま・・・多分・・・こっちはそんなに更新できないかな^^;;

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。