[[20260724095253]] 『一度、反映したサーバースタンプが勝手に変更して』(Bulls) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『一度、反映したサーバースタンプが勝手に変更してしまう』(Bulls)

いつもお世話になっております。

Bullsと申します。

K列に以下の条件式を入力しています。
=IF(OR(I26="部長氏名",J26="部長代理氏名"),IF(JJ26="",NOW(),JJ26),"")

I列→部長が承認すると部長の氏名を入力します。
J列→部長不在時、代理の人が氏名を入力します。

どちらかに署名があれば、K列にサーバースタンプ(承認時刻)が表示されます。
ここまでは上手くいきましたが…下の行に1文字でも入力すると先ほど表示された時刻が最新時刻に変更されます。

どなたか知恵を貸していただけますでしょうか。

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

< 使用 Excel:unknown、使用 OS:unknown >


 now()はサーバースタンプではなく現在時刻なので

 現在時刻を固定したいのであれば
  [Kx]:= if([Kx] <> 0,Kx,元の式)
 みたいに循環参照してください

 sharepointのサーバースタンプはデフォルトだと
  リボン >  [校閲] タブ > [変更内容] で見れますがこれを取得する方法は知らないので

 [[20260708131331]]
 [[20260521160314]]

 ここら辺を参考に知りたいデータを自分で保存してください。

(ちくわ) 2026/07/24(金) 10:40:39


[[20260708131331]]
[[20260521160314]]

 てすと
(ちくわ) 2026/07/24(金) 10:41:34

かなり被ってますが投稿しておきます。

■1
お気づきかもしれませんが、NOW関数を使っている以上、そういう仕様です。
最近ですと↓で同じ話題が出ていましたので参考にされてはどうでしょうか。

 【参考】
[[20260708131331]] 『一度、表示した時刻を消えないようにしたい』(上司に頼られて…困)

■2
マクロの使用が許容されるならば、↓のようなアプローチも有効かと思います。

    '◆このマクロはシートモジュールに記載すること◆
    Private Sub Worksheet_Change(ByVal Target As Range)

        Dim MyRNG As Range

        If Not Intersect(Range("I:J"), Target) Is Nothing Then
            For Each MyRNG In Intersect(Target.EntireRow, Range("K:K"))
                If Application.CountA(Intersect(Range("I:J"), MyRNG.EntireRow)) = 0 Then
                    'I列,J列のいずれも空欄の場合、K列を「""」にする
                    MyRNG.Value = ""
                Else
                    'I列,J列のいずれかが空欄でない場合かつK列が空欄でなかった場合
                    If MyRNG.Value = "" Then MyRNG.Value = Now()
                End If
            Next MyRNG
        End If
    End Sub

(もこな2) 2026/07/24(金) 12:06:58


コメント返信:

[ 一覧(最新更新順) ]


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