こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの時間表示・計算がおかしい

あるネット上のシステムからエクセル表をダウンロードします。
xlsxファイルです。
勤怠表なのですが、たとえば
01:34 とセルにあります。書式で見ると、時刻の形式にはなっています。
なぜかこのままでは、集計計算ができません。このとき、セルは、セル自体の表示ではなく、上のほうの中身のデータ表示だと、01:34となっています。

これを、
1:34に手で修正します。
そうすると合計など、計算ができるようになります。その状態においても、もちろん、時刻形式です。ただ、このとき、セルは、1:34:00となっています。

で、このファイルを保存しようとすると、やたら時間がかかり若干フリーズしたような状況になります。
何か原因、解決策はありますでしょうか?

投稿日時 - 2019-04-17 18:39:50

QNo.9607760

困ってます

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

そのシステムとは、どのシステムでしょうか。
そのエクセル表を見たほうが確実ですが。

まず時刻の直し方ですが、01:34 になっているのなら、文字列で入っているものと思われます。(表示形式を文字列にして、01:34 と入力、その後表示形式を変更しても文字列のままです)直し方ですが、
空白セル(1か所)を選択、コピー
時刻の入っている範囲を選択(入っていない所が含まれていてもいい)
形式を選択して貼り付け、値、加算にチェックを入れる。Ok
これで数字になり、計算できます。

やたら時間がかかり若干フリーズしたような状況
これは、Excel ファイルに余分な余分な情報が入っているのでしょう。
新しいワークブックを作り、シート全体をコピペして保存すれば解決するかもしれません。但し、マクロ等を使っていれば、それらもコピーする必要があります。
マクロを使っているなら、そのマクロが原因で、必要以上にワークブックが大きくなってしまうという可能性があります。この場合、マクロを修正する以外方法はありません。

投稿日時 - 2019-04-18 08:56:44

お礼

大変参考になりました。やってみます。ありがとうございます。

投稿日時 - 2019-04-18 23:22:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

質問者が、エクセルの日付・時刻シリアル値の考え方、重要性を知らないから、こんな質問になって、こんがらがるのだと思う。
勉強しなおしたら。
ーー
エクセルのシートの場合、
セルの見てくれで、周囲の状況から、日付や時刻らしいものが、見える場合は
(1)文字列で、そのように入力されているか、文字列を返す関数の結果でそう見えて居る 例 =TEXT(A2,"h時MM分") 「D2セルに入っているとする」 この場合=TYPE(D2)は2
(2)日付・時刻シリアル値がセルの値として、入っていて、そこに表示形式で、日付・時刻のように見えて居る.エクセルでは普通の場合です。
のどちらかです。
Excelでは(2)が基本です。理由は
(1)日付書式を使って自由に表示が利用・変えられる。
   曜日や年号表示に従った表示もできる。
(2)日付時刻の計算が(表示と離れて)できる。
(3)日付・時刻の関数やVBAが使える。逆に言えば、関数はその引数の内容が、日付時刻シリアル値の場合に限り、正常に働く。
などです。
だから日付・時刻シリアル値になっているかどうかを確かめる。
なってない場合は、引数に文字列を扱う、日付・時刻の関数を使って、日付・時刻シリアル値に変換すれば仕舞い。
TYPE関数で調べられるかもしれない。
https://dekiru.net/article/4446/
>TYPE データの種類を調べる  
文字列は「2」、日付シリアル値は「1」
ほかに
=cell("format",A1)
https://dekiru.net/article/4431/

投稿日時 - 2019-04-18 15:06:17

お礼

高度でよくわかりません。

投稿日時 - 2019-04-18 23:18:42

ANo.5

スローダウンはよくわかりませんが、それ以外は、
珍しいことではなく、また異常な事象でもありません。
>あるネット上のシステムからエクセル表をダウンロード
したときに、エクセルは
>01:34 とセルにあります
この値を文字列として受け取っています。

このセルを選択し、F2キー、エンターキーとすることで
エクセルは、
埋まっている文字列が時刻形式の文字列と認識し
日付シリアル値として受け取り
書式をh:mmにしています。

これは、
ダウンロード直後と書き換えた後それぞれで、
書式を標準に設定してみることで理解できると思います。

指摘のセルがたくさんあるようなら
適当なセルに0を埋め、
これをコピー後、指摘のセルたちに、
形式を選択して貼り付け、演算、加算とすることで
(つまり0を加算することで)
期待の結果(日付シリアル値)になると思います。

投稿日時 - 2019-04-18 07:52:57

お礼

ありがとうございます。数値(日付の数値)でなく、文字列になっているわけですね(セルの書式をみると時間表示なのですが、実際は文字列状態と考えればよいのですね)。ありがとうございます。

投稿日時 - 2019-04-18 23:25:46

ANo.4

》 あるネット上のシステムからエクセル表をダウンロードします
貴方からの情報をアレコレ聞いて無駄なキャッチボールを繰り返すより、私も実際に試してみた方が確実な回答ができそうなので、「ダウンロード」のための具体的な URL を教えてください。それから常識的なことだけど、質問の際はPCのOSとお使いの Excel のバージョンも記してください。

投稿日時 - 2019-04-17 23:54:10

お礼

excel2007, osはwin10です。とりあえずいくつかいただいた、皆様のデータから、自分でやってみます。ありがとうございます。

投稿日時 - 2019-04-18 23:27:19

ANo.3

Excelブックに何らかの不整合が発生していそうな感じです。
シート名右クリック→「移動またはコピー」で新しいブックにコピーを作成して保存してみてください。
普通に保存出来るようになりませんか?

投稿日時 - 2019-04-17 20:00:04

ANo.2

書式設定を標準に一旦変えてからもう一度時刻に変えてみてください。

投稿日時 - 2019-04-17 19:07:42

ANo.1

パソコンをアップデートして再起動しても同じでしょか?
おそらく、エクセルの仕様だと思います。
「このとき、セルは、1:34:00となっています。」とのことですが、このセルの書式は、h:mm:ssでしょうか?

投稿日時 - 2019-04-17 18:55:15

あなたにオススメの質問