建設業の経理をしてるのですが、エクセルで社員の代休を管理をしたいと思っています。
何かアイディアがないでしょうか?

今ある書式は休日出勤した日付とその工事名、振り替えた日付が社員別に3行で表示してあります。画面で見ても印刷しても見にくくて分かりにくいです。なにかいい方法はないですか?
欲を言うと、それを工事別かつ社員別に集計してくれるようなものを作りたいと思っています。

ちなみに25人ぐらいを添付の書式で管理しています。

「建設業の経理をしてるのですが、エクセルで」の質問画像

A 回答 (2件)

>例えば代休を使わなかった場合に工事名順かつ名前順に並べることは可能なのですが。



この場合は、工事名と名前だけを入力して、出勤日と代休日をブランクにしておけばよいでしょう。

>しかも1人が20日の出勤日があって、25人を管理しようと思ったら行がものすごい数になっちゃいますよね?確かに集計は楽かもしれませんが、表じたいを見るのは大変なような気がして・・・

データ量が非常に多い場合はエクセルに向いていない処理と考えるのが本来です。
その場合はたとえばAccessならば何千件のデータでも簡単です。しかし使える人が限られますね。

現実的には、月単位でシートを分けるとか、データのフィルターで特定の工事や人名だけを表示させるとかの工夫をしたらいかがでしょうか。

ご質問にある表形式でもそのような大量データでしたら見やすいとも思えないのですが。
おまけにデータ作成上、上下になったり左右になったりで煩雑という欠点もあると思います。

工夫によってはデータを一件1行にして、目的に応じて適当な集計やソートをすれば、見やすい出力はできると思います。

大量のデータのコツは、元データはできる限りシンプルな形式でレコード化し、利用の際にその目的に応じた出力を考えることです。将来どのような必要が出るかわかりませんので、できる限り広範囲な利用が可能な形式で元データを作っておくのが、システムづくりの常識です。
    • good
    • 0
この回答へのお礼

ご親切にありがとうございました。
なかなか難しいですね・・・。
参考にさせていただき自分なりに考えてみます。
本当にありがとうございました。

お礼日時:2010/07/31 22:20

データの作り方を変えたほうがよさそうです。


1行1件で 工事名、氏名、休日出勤、代休日 

というデータにします。

こうしておけば、工事順、社員順、に並べ替えをしてから
データの集計機能で、工事名、社員名をキーとして件数を表示することができます。

明細を非表示にして、社員だけの件数や、工事ごとの件数を表示することも可能です。

目的に応じて、並べ替えのキーと集計のキーを変えると各種の集計が可能です。

多くの件数のデータを集計するためには、1件1行のデータ形式は最も合理的です。
ご質問の表の形はこのような処理には非常に不向きな形です。

この回答への補足

早速回答ありがとうございます。
そのような方法がやっぱりいいですよね。
例えば代休を使わなかった場合に工事名順かつ名前順に並べることは可能なのですが。
しかも1人が20日の出勤日があって、25人を管理しようと思ったら行がものすごい数になっちゃいますよね?確かに集計は楽かもしれませんが、表じたいを見るのは大変なような気がして・・・

補足日時:2010/07/30 21:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELで休日出勤を計算する

お世話になります。
知恵をお貸しいただければ幸いです。

EXCELでひと月ごとのの出勤報告書を作っています。
そこで、休日(土、日、祝)出勤手当てを支払われる日が何日あるかを自動表示させようとしています。
今のシートの構成は
A列:日付(2008/9/1の形で入力し、「1」のように表示 A5:A35)
B列:曜日(A列から参照し、表示形式でaaaとし「月」のように表示)
C列:休日(仕方なく手入力で「休」と入れている)
D列:休日出勤したか判定(=IF(OR((C5>0)*(E5>0)),"休出","")C列とE列とも入力された場合に休日出勤とし「休出」と表示)
E列:出勤した日はその日の仕事内容を入力

D列の最下部で「休出」が何回あるかカウント(=COUNTIF(D5:D35,"休出"))

祝日は関数が無いので、祝日一覧を作り該当する日付から祝日を割り出すのは分かったのですが。
=IF(WEEKDAY(A5)=1,"休","")&IF(WEEKDAY(A5)=7,"休","")

よろしくお願いします。

Aベストアンサー

土、日、祝日のサインを立てる列を1列にして、列のサインが立っている件数をカウントすれば(1という数値なら合計する)仕舞い。
ーー
>=IF(WEEKDAY(A5)=1,"休","")&IF(WEEKDAY(A5)=7,"休","")
でチョチョ切れているのでは。何を言いたいのかな。
ーー
下記のようなことをしたいのかな。
例データ
A列  B列  C列
2008/9/1月
2008/9/2火
2008/9/3水
2008/9/4木
2008/9/5金
2008/9/6土1
2008/9/7日1
2008/9/8月
2008/9/9火
2008/9/10水
2008/9/11木
2008/9/12金
2008/9/13土1
2008/9/14日1
2008/9/15月1
・・・(以下略)
A列 今年9月の日付
B列 A列のコピー、書式ーユーザー定義のaaa
C2の式
=IF(OR(WEEKDAY(A2)=1,WEEKDAY(A2)=7,NOT(ISERROR(VLOOKUP(A2,$G$1:$G$10,1,FALSE)))),1,"")
これを下方向に式を複写。
結果
上記C列。
ただし上の式では、G列に
9月の祝日(特別に会社休業日もあれば入れてよい)である
2008/9/15
2008/9/23
を入れておく。
ちなみに上記結果C列は9月15日は1になっている。
NOT(ISERROR(VLOOKUP(A2,$G$1:$G$10,1,FALSE)))はG列のリストにある日付かどうかを判別しているもの。
ーーー
出勤日とこのC列が同時に1であれば休日出勤日数がわかる。
D列に出勤日は1が入るとして
=SUMPRODUCT((C2:C31=1)*(D2:D31=1))
で休日出勤日数がでる。

土、日、祝日のサインを立てる列を1列にして、列のサインが立っている件数をカウントすれば(1という数値なら合計する)仕舞い。
ーー
>=IF(WEEKDAY(A5)=1,"休","")&IF(WEEKDAY(A5)=7,"休","")
でチョチョ切れているのでは。何を言いたいのかな。
ーー
下記のようなことをしたいのかな。
例データ
A列  B列  C列
2008/9/1月
2008/9/2火
2008/9/3水
2008/9/4木
2008/9/5金
2008/9/6土1
2008/9/7日1
2008/9/8月
2008/9/9火
2008/9/10水
2008/9/11木
2008/9/12金
2008/9/13土1
2008/9/14...続きを読む

QExcel 管理表 関数 マクロ

今、代休の管理表をつくっているのですがどなたか知恵をかしてください。

条件は、1日~31日までの中で夜の金曜日と土曜日に出ている人は代休になる

というのでそこまではできて、個人別に代休の日数を表示するところまではできたのですが、

それと日曜日から金曜日まで夜 名前がある人は代休発生にならない

あと、代休の日数は表示できているのですがそれ+代休の日付の表示したいのですが

どうやっていいか全くわかりません。

よければ教えてください。

Aベストアンサー

条件がわかりにくいのですがこういうことでしょうか。

(1)金曜日の夜か土曜日全日出勤で、
(2)日曜から金曜日まで全部の日の夜に出勤してる人以外は、
代休の権利が発生する。

考え方だけを言いますと、
直前の日曜から金曜日までの夜にブランクがないというのが(2)の条件になります。
これはISBLANK関数で判定できます。
少し素朴ですが、日曜から金曜日まで全部の日の夜のセルがブランクのときはというIF関数でこれは判定できます。
 =AND(ISBLANK(A5),ISBLANK(A6),ISBLANK(A7),ISBLANK(A8),ISBLANK(A9),ISBLANK(A10))  式A

この式でtrueならばA5からA10まで全部のセルがブランクのときという条件になります。

従って金曜日の夜か土曜日全日のセルに名前があって、式AがTrueの人はその日に代休が発生するということです。

代休の日を表示するには条件付書式を使ったらいかがでしょうか。

上記の式で代休発生の日がTrueの場合は、そのセルを赤にするというようなことが出来ます。
詳しくは条件付書式のヘルプでご覧ください。

条件がわかりにくいのですがこういうことでしょうか。

(1)金曜日の夜か土曜日全日出勤で、
(2)日曜から金曜日まで全部の日の夜に出勤してる人以外は、
代休の権利が発生する。

考え方だけを言いますと、
直前の日曜から金曜日までの夜にブランクがないというのが(2)の条件になります。
これはISBLANK関数で判定できます。
少し素朴ですが、日曜から金曜日まで全部の日の夜のセルがブランクのときはというIF関数でこれは判定できます。
 =AND(ISBLANK(A5),ISBLANK(A6),ISBLANK(A7),ISBLANK(A8),ISBLANK(A9),ISBL...続きを読む

Q労働保険の 労働保険番号について

どなたか教えていただければ有難いです。

労働保険は、労災保険と雇用保険に分かれますが

労働保険番号は、労保と雇保別々にもつものなのでしょうか?

一元適用事業所の場合と二元適用事業所の場合を教えてください。

また、
労働保険の納付先は、どこになるのでしょうか?

詳しい方どうぞ宜しくお願いします。

Aベストアンサー

労働保険番号とは、
府県(○○)ー所掌(○)ー管轄(○○)ー基幹番号(○○○○○○)ー枝番号(○○)の13桁の番号から成り、一元適用事業所には1つの労働保険番号が付けられます。
労働保険番号の基幹番号の末尾番号が「0」の場合は、一般の事業所(一元適用事業所)の労働保険番号になり、この末尾が「2」の場合は、建設業などの二元適用事業所の雇用保険に該当する労働保険番号になり、末尾「4」は、二元適用事業所の林業等の労災保険番号、末尾「5」は建設業等の労災保険番号、末尾「6」は二元適用事業所の事務部門に従事する職員の労災保険番号、末尾「8」は、建設業の一人親方の事務組合加入による労災保険番号になります。
また、雇用保険番号として、1事業所に一つ「雇用保険適用事業所番号」○○○○ー○○○○○○ー○の11桁からなる番号が付けられます。
つまり、一元適用事業所には、13桁からなる労働保険番号と11桁からなる雇用保険適用事業所番号の2種類の番号を持つことになります。
二元適用事業所の場合は、事業の内容により変わりますが、雇用保険適用事業所番号と他に、労働保険番号の基幹番号の末尾2、5、6などを持つ場合が多い(末尾6を持たない事業所も多いです)ようです。

労働保険料の納付は、毎年5月20日までに年度更新(労働保険の確定申告)を行い最寄りの金融機関や郵便局又は、一元適用事業所であればハローワークで納付(労災も雇用保険料も併せて)します。二元適用事業所の場合も金融機関などの納付は一元適用事業所と同様ですが、直接ハローワークや労働基準監督署などに納付する場合は、雇用保険料(末尾2の分)はハローワークへ、その他の末尾にかかる保険料は労働基準監督署に納付します。
ちなみに年度更新における書類の作成も一元適用と二元適用では大きな相違点がありますのでご注意下さい。
参考までに下記のホームページをご覧下さい。

参考URL:http://www.mhlw.go.jp/topics/2003/03/tp0320-2.html

労働保険番号とは、
府県(○○)ー所掌(○)ー管轄(○○)ー基幹番号(○○○○○○)ー枝番号(○○)の13桁の番号から成り、一元適用事業所には1つの労働保険番号が付けられます。
労働保険番号の基幹番号の末尾番号が「0」の場合は、一般の事業所(一元適用事業所)の労働保険番号になり、この末尾が「2」の場合は、建設業などの二元適用事業所の雇用保険に該当する労働保険番号になり、末尾「4」は、二元適用事業所の林業等の労災保険番号、末尾「5」は建設業等の労災保険番号、末尾「6」は二元適用事業所の事...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで年休を管理 (一日8時間単位で)

お世話になります。別の方の回答を参考にしましたが、うまくいきませんでした。http://oshiete1.goo.ne.jp/qa2676725.html
時間単位の年休管理をしたいと思っているのですが、表示の仕方がわかりませんので教えてください。
例えば、1日8時間勤務だとして、時間単位の年休が取れるとします。40日間の年休のある人が、1時間の年休を取った場合”39日7時間”、別の日に1日(8時間)取った場合”38日7時間”といったように表示させたいのですが、どのようにすればいいのでしょうか。関数について、あまり詳しくありませんのでよろしくお願いいたします。

Aベストアンサー

関数と言うより数式ですね。
要は、1日を8時間で計算したいのでしょう。
ならば、有給休暇を日数で管理せず、時間数で管理する方が楽でしょう。
40日なら320時間です。そこから時間数単位で減算していけば良いでしょう。
1日使ったら8時間として減算すれば良いわけです。
当然、減算につかうセルは、日と時間とで別セルにしておくなどの工夫は必要です。

あとは、何日何時間と表示したければ、その残り時間がセルA1に入っているとしたら、
=INT(A1/8)&"日"&MOD(A1,8)&"時間"
で表示用の計算ができます。

QExcel:セルに入力されている日付の、半年後の日付を自動表示させたい

誰か教えてください。
A列のセルに「2004/3/4」という日付が入っていたとします。
A列の日付を参照して、B列に「半年後」、C列に「16ヶ月後」という日付を自動表示させたいのですが、そういう事って出来ますか?
出来るとしたらどんな関数を書けばいいのでしょう?
教えてください!

Aベストアンサー

こんにちは。maruru01です。

基本形(半年後)は、

=DATE(YEAR(A1),MONTH(A1)+6,DAY(A1))

です。
(16ヶ月後は、数式中の6→16にする)
ただし、月末の場合は問題があります。
例えばA1に、「2004/8/31」と入力すると、半年後は、「2005/3/3」になります。
これを、「2005/2/28」にするなら、数式を、

=MIN(DATE(YEAR(A1),MONTH(A1)+6,DAY(A1)),DATE(YEAR(A1),MONTH(A1)+6+1,))

とします。
また、分析ツールが利用出来るのなら、

=EDATE(A1,6)

としても、「2005/2/28」という日付が求まります。
なお、分析ツールは、メニューの[ツール]→[アドイン]→[分析ツール]にチェックをすると利用可になります。

QWordで、1ページを丸ごと削除するには?

1ページしか必要ないのに、真っ白な2ページ目がその下に表示されてしまった場合、この余分な2ページ目を一括削除(消去)する為に、何かいい方法があるでしょうか?

Aベストアンサー

<表示されてしまった場合>
これはそれなりに理由があるわけで、改ページや改行によって、次のページにまで入力が及んでいる時にそうなります。
特に罫線で表を作成し、ページの下一杯まで罫線を引いたときなどには、よくなる現象です。

さて、メニューの「表示」で段落記号にチェックが入っていないと、改行や改ページなどの入力情報が見えず、白紙のページを全て選択→削除してもそのままということが良くあります。
1 改行マークが白紙のページの先頭に入っていれば、それをBackSpaceで消してやる。
2 罫線を使っている場合は、それでも効果がない場合がありますが、その時は行数を増やしてやる。
などの方法があります。

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Q残業時間の計算をするにはどのような関数あるいは計算式を設定すればいいの

残業時間の計算をするにはどのような関数あるいは計算式を設定すればいいのですか?
私、エクセルについてはまったくの初心者です。よろしくお願いします。

(例)
       A      B
 
1行目 出勤時間  9:00

2行目 退社時間  19:30

3行目 残業時間  2:00 ←ここの計算式を教えていただきたいのです。

             ※ ただし、定時の終了時間は17:30で、拘束時間は休憩時間を含めて
               8:30とした場合でお願いします。

Aベストアンサー

勤務時間=退社時間-出勤時間
残業時間=勤務時間-8:30
で数式を組み立てると

残業時間 B3=IF(OR(B1>0,B2>B1),MAX(B2-B1-"8:30",0),"")

時間を30分単位で切り捨てにする場合
残業時間 B3=IF(OR(B1>0,B2>B1),FLOOR(MAX(B2-B1-"8:30",0),"0:30"*1),"")


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報