No.2ベストアンサー
- 回答日時:
PC対応のタイムレコーダーを使っていますが付属のソフトの使い勝手が悪く、CSVでデータを取って社員ごとに1か月のシートにして作業しています。
なので、ご希望のことは充分に可能だと思います。
>1.シート1に日付別の氏名別の勤怠が入っています。
この表現から想像すると、毎日(その日に)出社している社員の勤怠データを記録しているのでしょうか?
欠勤した社員のデータが存在しなければ社員毎にデータ数が異なるので若干厄介ですが対応方法はいろいろあります。
ざっくり考え方を示します。
1.一人ごとに異なるデータを全て動的配列で宣言します。 (氏名/出勤時刻/退社時刻/日付 など)
また作業用の変数をいくつか使います
2.締間のデータは全て1シートにして、氏名(できれば所属/社員コード順が後の使い勝手がいいですね)でソートしましょう
ソートの目的は個人ごとのデータをまとめることと、空白行をなくし、全体をひとつの矩形にすることです。
蛇足ですが社員ごとには日付順を維持しましょう
3.社員ごとにデータの数を確認します
(例)
社員数=1
最大日数=1
個別日数=0
全体行数=cells(1,1).end(xldown).row
For a=1 to 全体行数-1
if cells(a,氏名の列).value<>cells(a+1,氏名の列).value then
社員数=社員数+1
if 個別日数>最大日数 then 最大日数=個別日数
個別日数=0
else
個別日数=個別日数+1
end if
next a
上記で社員数と最大日数が得られるはず(たぶん・・・^^;;)なので動的配列を再宣言します
Redim 氏名(社員数) ’氏名は1次元でOK
Redim 出勤時刻(社員数,最大日数),略 ’社員別日別データは2次元
4.配列にデータを格納します
例)
社員数=1
個別日数=0
For a=1 to 全体行数
If cells(a,氏名の列).value<>cells(a+1,氏名の列).value then
氏名(社員数)=Cells(a,氏名の列).value
社員数=社員数+1
個別日数=0
Else
個別日数=個別日数+1
日付(社員数,個別日数)=cells(a,日付の列).value
出勤時刻(社員数,個別日数)=cells(a,出勤時刻の列).value
・・・(略)
End If
Next a
5.社員ごとにシートを作りデータを入れます
例)
For s1=1 to 社員数
ActiveWorkbook.Sheets.Add Before:=Worksheets(Worksheets.Count)
cells(1,1)value=氏名(s1)
cells(2,1)value=”日付” ’タイトル
cells(2,2)value=”出勤時刻”’タイトル
・・・(略)
For s2=1 to 最大日数
If 日付(s1,s2)=0 then Exit For '個別日付が0になるとループから抜ける
Cells(S2+2,1).value=日付(s1,s2)
Cells(S2+2,2).value=出勤時刻(s1,s2)
・・・(略)
Next s2
Next s1
サンプルコードっぽく見えますがまるっきり動作確認していません。きっと希望の動きはしないと思うので要調整です。
また、3.と4.のコードは近似しているのでもうちょっとすっきりさせたいのですが、目的達成を優先して泥臭く繰り返しています(^^;
参考までに
No.1
- 回答日時:
漠然とした質問なので、
「できるでしょう。」という回答にしかなりません。
もっと具体的に回答するなら、『do loopとかif文とか使えばできるでしょう。』
漠然と全体を質問するのでなく、一度やってみて、具体的にいきづまったところを質問すれば適切な回答が得られると思いますよ。
参考までに
http://pc.nikkeibp.co.jp/pc21/sample/200312/k_fx …
http://www.vector.co.jp/soft/win95/business/se35 …
http://www.ncm07.jp/EXCEL-database/case/index1.h …
http://www.kaigyo-do.com/09.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- Excel(エクセル) Excelについて 1 2023/03/06 10:26
- Excel(エクセル) 添付写真上のExcelシートのように時間と曜日ごとに担当者が振り分けられているシートがあります。 例 1 2023/03/08 13:02
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ブラック企業で働く人たちはな...
-
会社の人に勝手にLINE追加され...
-
平社員の場合の役職名は?
-
職場で空気のような存在になっ...
-
出戻り社員は一番下でしょ?? ...
-
社員への残業時間公開について
-
詐欺広告業者もひどいが、メタ...
-
若いイケメンには態度を変える...
-
社員がPCを壊した場合の対処方...
-
巨乳の同僚
-
マクドナルド社員になるのはか...
-
社員各位という言葉について
-
悪口を本人に聞かれてしまった
-
先日、当社のある社員について...
-
会社の互助会費について
-
Access VBA DB(先頭の0値を...
-
個人情報保護について
-
Accessのエラーメッセージについて
-
皆さんの会社の親睦会費は社員...
-
「他」は「た」としか読まない...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
平社員の場合の役職名は?
-
社員名簿で家族構成書くとこあ...
-
出戻り社員は一番下でしょ?? ...
-
社員各位という言葉について
-
会社の人に勝手にLINE追加され...
-
マクドナルド社員になるのはか...
-
会社の互助会費について
-
会社の社長、創業者が死去した...
-
巨乳の同僚
-
帰り際になって急に話しかけて...
-
職場で空気のような存在になっ...
-
派遣社員に直接注意
-
社員への残業時間公開について
-
月1くらいで休む派遣さんが、休...
-
「酷いパワハラを続ける社長」...
-
大人のイジメって何をされるの...
-
自分にだけタメ口対応をされま...
-
皆さんの会社の親睦会費は社員...
-
今日、私は病み上がりでバイト...
-
悪口を本人に聞かれてしまった
おすすめ情報