• ベストアンサー

エクセルでタイムカードの管理をしたい

いつもお世話になります。 会社でタイムカードの処理を担当しています。 今までは各個人から提出された休日出勤届けや残業届けを 手書きで控えを取っていました、が、最近忙しく、 簡略化できないかと思い、エクセルで管理したく思ってます。 届け見ながらを氏名日付時刻等入力すると別のシートに用意してあるカレンダー(縦列に日付、横列に各個人の名前一覧がある)の日付と名前のクロスするところに○印を付けたいと思っているんですが、 どんな関数を使えばいいか見当もつきません。 知恵をお借りしたく思います。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

社員が50人とした場合でも、22日分で1,100件のデータになり、計算式はカレンダー側に入れることになります。 ご希望とは違うかもしれませんが Sheet1での作業 A1に「氏名」、B1に「日付」と見出しを入力(データベース関数を使いますので、フィールド名になります)。 A2以下に社員名(重複あり)、B2以下に日付(重複あり)を適当に100件程度入力。 検索条件として D1に「氏名」、E1に「日付」と見出しを入力(検索のフィールド名になります)。 D2にA2の社員名、E2にB2の日付を入力(ここに入る社員と日付で検索します)。 Sheet2での作業 A2以下に社員名(重複なし)、B1から右に日付(重複なし)のカレンダー部分を入力。 B2に式を入力 =IF(ISERROR(DGET(Sheet1!$A$1:$B$10000,"日付",Sheet1!$D1:$E2))=FALSE,"○","×") Sheet1のA1:B10000をデータベースとして、Sheet1のD2,E2を条件にフィールド(列のこと)を検索します。 検索条件に当てはまるものがあれば、「○」を、ない若しくは複数あれば「×」を表示させています。 D2,E2の条件を変更して確認してください。 B3の式は検索条件が異なります。 D3に「氏名」、E3に「日付」と見出しを入力。D4に社員名、E4にB日付を入力。Sheet1!$D1:$E2の検索条件をSheet1!$D3:$E4に変更してください。 最終的には、名前を定義されるとわかりやすくなります。以下同じです。 Sheetでの作業方法が固定すれば、マクロの作成に挑戦し、質問してみてください。もっと楽にカレンダーが作成できます。

関連するQ&A