[[20221130101658]] 『過去の日付を統一したい』(ダンボ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『過去の日付を統一したい』(ダンボ)

職場でデータをExcelに書き込んでいたんですが、A列が日付、B列が時間で書き込んでいました。
会社では朝7時に日付が変わる為、過去のものもこれからのものも全てB列の時間で日付を朝7時で変更する方法を教えて頂けないでしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows10 >


セルの表示形式を標準にしてから

置き換え文字
.*

置き換え後の文字
.2916666667

で、全て置き換え
表示形式を戻す
(色々) 2022/11/30(水) 10:55:44



なんか点がよく見えないみたいだけど
頭にコンマがあります。
(色々) 2022/11/30(水) 11:00:02

 具体例を見せて貰った方がいいような気がします。

 特に、これからのものとは、「どういう時に、どう言うものが、どうなればいいのか」
 この説明も欲しい。

(半平太) 2022/11/30(水) 11:07:43


ありがとうございます

例えばB列に6:00と打てばA列は前日の日付(2022年11月29日)に
B列に7:00と打てば今日の日付(2022年11月30日)になるようにしたいです。

過去ものは0:00で日付が変わっていたり、7:00以降でも日付が変わってなかったりしています
(ダンボ) 2022/11/30(水) 12:27:28


B列に時間(mm:mm)と入力したら7:00以降でa列の日付がyyyy年mm月dd日と表示されるようにしたいです。

すみません。

説明が下手でして
(ダンボ) 2022/11/30(水) 12:32:01


 過去のものの方が少し分かり易いので、先ずそちらから詰めて行きます。

 >過去ものは0:00で日付が変わっていたり、7:00以降でも日付が変わってなかったりしています
 この文章のニュアンスからすると、正しい日付と間違った日付が混在していると読めます。

 もし正誤が混在していたら、修正対象かどうか判断できません。

 つまり、下図の状態において、
   A1の日付を2022/11/30にするのか、そのままにするのか、
   A2の日付を2022/12/1 にするのか、そのままにするのか、

 判断できないのではないかと思われますが?

 <処理前>
 行  _____A_____  __B__
  1    2022/12/1   1:00
  2   2022/11/30   7:30

 日付単独で見ないで、全体の日付の流れから、各日付の適否を判断せよと言う事なんですか?

(半平太) 2022/11/30(水) 13:14:02


元々セル自体に関数なとは入っておらず、オペレーターがバラバラで日付、時間を打っていました。
そこでB列に時間を入れるとA列の日付が自動で変わる様にしたいんです。

自分の職場では朝7:00に日付が変わるのでオペレーターが時間だけ入力するようにしたいです。

そこで過去のものも日付を統一したいと思いまして
(ダンボ) 2022/11/30(水) 13:20:28


正しい日付と間違った日付が混雑している状態です。
(ダンボ) 2022/11/30(水) 13:23:19

 過去のものは下手に触らないほうがよいと思います。
 やりかたによっては修正したかどうかが不明になる恐れもあります。
 いったんそうなってしまうと、データそのものの信頼性がゼロになってしまいます。
 そもそも、過去のものを今、使っているんですか?
 今後のものに限ってその方針で作成したほうが無難だと思います。
  
(γ) 2022/11/30(水) 13:44:14

 >正しい日付と間違った日付が混雑している状態です。

 間違った日付だけ特定できるロジックを確立しないとならないです。
 ※多分、日付群の入力状態が分かればクリア出来るでしょうが、
  その詳細説明がないので、当面ROMに回ります。

 >朝7:00に日付が変わるのでオペレーターが時間だけ入力するようにしたいです。
 こっちの方だけ。
 「シートモジュール」にコピペしてください。(つまり標準モジュールに、ではないです。念の為)

 Private Sub Worksheet_Change(ByVal Target As Range)
     Dim r As Range
     Dim aCell As Range

     Set r = Intersect(Columns("B"), Target)

     If Not r Is Nothing Then
         Application.EnableEvents = False

         For Each aCell In r
             If IsDate(Format(aCell, aCell.NumberFormatLocal)) Then
                 aCell.Offset(, -1) = Date + (aCell.Value < #7:00:00 AM#)
             End If
         Next

         Application.EnableEvents = True
     End If
 End Sub

(半平太) 2022/11/30(水) 15:35:40


ありがとうございます

やってみます。
(ダンボ) 2022/11/30(水) 20:31:26


日付群の入力状態はどう説明したらいいでしょうか?

例を書いてもらえれば、現状の状態を書かせて頂きます。

ご迷惑をお掛けしますがよろしくお願いします。
(ダンボ) 2022/12/05(月) 12:18:20


A1 2022年12月4日 6:50

A2 2022年12月5日 7:00

11/30に教えて頂いたもので当日以降のものは時間だけ入力すれば日付が変わるようになりました。

過去のもの関しては無理でしょうか?
(ダンボ) 2022/12/05(月) 12:24:22


 >日付群の入力状態はどう説明したらいいでしょうか?

 こちらは、目の前にデータがある訳じゃないですからねぇ・・

 正しい日付と間違った日付が混在しているのですから、
 「どっちが正しい日付なのか判別できるロジック」 が必要になります。
 それを説明いただければいいです。

 多分その過程で、データがどう言う状況なのか説明せざるを得なくなると思います。

(半平太) 2022/12/05(月) 15:26:21


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.