Q&A

回答の並べ替え:
投稿新規に質問を投稿する

勤務表集計

ひ☆彡ろ ひ☆彡ろ

2020-04-28 14:46

CELFテーブルに勤務表をインポートして、残業時間や累計有休取得日を管理するアプリを作成中です。
CELFテーブルには時間という定義が無いので、日時という定義にする必要があると思います。エクセルで適当な日を付けると「1899-12-31 10:30:00」のようになります。この状態でCELFテーブルに入れておき、集計の際に読みだしてきて、SUM関数で合計しようとすると、#VALUE!となってしまい計算できません。読みだした後で、SUBSTITUTE関数を使って「1899-12-31 10:30:00」→「10:30:00」に変換すし、集計するしかないでしょうか?
もっと良い方法があれば教えてください。よろしくお願いします。

ひ☆彡ろ ひ☆彡ろ
>表示形式を標準にしておくと、24:00以上の表示ができました。
>この場合、SUM() も動作している様です。

一度時間を入力したセルで標準に変更してもダメでしたが、作業したことのない、まっさらのセルで試したらできました。これなら出来そうです。ありがとうございました。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
メダルベストアンサー
こんにちは。

少し動作確認してみました。
表示上、24時間以上の表示を実現しようとすると、
表示形式が時刻になると、24:00表記に変わってしまう様で、
表示形式を標準にしておくと、24:00以上の表示ができました。
この場合、SUM() も動作している様です。

キャプチャの、SUM左が表示形式を標準、右が時刻となります。
また、SUMをさらにSUMしたところ、表示形式が標準であれば、
101:00となりましたので、内部の値としては02:30と表示されていても、
50:30として保持されている様です。
メールコンタクトをとる
ひ☆彡ろ ひ☆彡ろ
SCM御中
こんにちは、アドバイスありがとうございます。シートの書式設定で「24h以上の時間を入力した場合・・・」にチェックを入れましたが、結果は変わりませんでした。セルの書式設定(時刻)をいくつか変更してみましたが、24h以上の表示になりません。何か他にも設定すべきところがあるのでしょうか?それから、時刻の場合はSUM関数が使えないようです。足し算は可能です。時間計算の場合、足し算で数式を入れるしかないでしょうか?

Yexiongmao
アドバイスありがとうございます。SCM様のアドバイスがうまくいかない場合、分での集計アプリを考えてみます。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
こんにちは。

CELFは途中まで、時刻の表示が、35時間の場合、35:00 と表示されていたのですが、
バージョンアップによって、時刻表記の35:00 の場合、表示が11:00となる様に、
仕様が変更されております。

書式[h]:mmがない事、過去の仕様を残す為に、シート設定の互換オプションに、
「24:00以上の時間を入力した場合、表示形式を時刻に変更しない」というものが
できましたので、こちらを選択して頂くと、24時間以上の時間も表示可能となります。

もしご参考になりましたら。

よろしくお願い致します。

メールコンタクトをとる
Yexiongmao Yexiongmao
こんにちは。
残業時間をDBに格納する際、カラムのデータ型を整数として分で格納してはいかがでしょうか?
例えば、残業時間としてセルに「03:26」のような形式が入っているのであれば、①で分にします。
表示するデータや給料計算に必要なデータ形式などに応じて、以下のようにすることができます。
時間は「=INT(G6/60)」残りの分は「=MOD(G6,60)」
分の合計をhh:mm表示にするなら②
また、シリアル値が必要なら、③です。

DBに「分」で格納しておけば、社員別の集計などもシンプルにできますし、どんなブラック企業でも対応できますね^^;
ぜひCELFでの管理を諦めないで欲しいです。
ひ☆彡ろ ひ☆彡ろ
追記します。
作業を進めていて、今気が付いたのですが、エクセルの書式[h]:mmがCELFには無いので、24h以上の計算は出来なそうです。CELFでの管理は諦めざるしかなさそうです。