Excel公式,在同一行的另一个单元格中输入数据时,将日期/时间放在单元格中

Ind*_*m83 7 excel excel-2007 excel-formula

希望有一种方法可以使用公式来完成,因为我将把它作为共享工作簿放在SharePoint上.

B列包含任务,而E列包含分配任务的日期和时间.当有人在B列输入数据时,是否有一个公式会自动输入E列中的当前日期和时间?

任何帮助将不胜感激.

Dro*_*ocs 6

另一种方法如下所述.

首先,打开下面的迭代计算File - Options - Formulas - Enable Iterative Calculation.然后将最大迭代次数设置为1000.

执行此操作后,请使用以下公式.

=If(D55="","",IF(C55="",NOW(),C55))
Run Code Online (Sandbox Code Playgroud)

一旦输入任何内容D55(对于此示例),则C55根据单元格格式填充今天的日期和/或时间.即使将新数据输入单元格C55,此日期/时间也不会再次更改,因此它显示最初输入数据的日期/时间.

这是一个循环引用公式,因此每次打开工作簿时都会收到有关它的警告.无论如何,该公式可以在工作表中的任何位置使用并且易于使用.


Ste*_*enH 5

这可以通过简单的VBA功能来完成。Excel支持工作表更改子,可以对其进行编程,以便在每次触发时在相关列中放置一个日期。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 And Target.Offset(0, 3).Value = "" Then
        Target.Offset(0, 3) = Format(Now(), "HH:MM:SS")
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

快速说明。下面的“ if”语句检查两件事:(1)是否是第二个更改的列(B列),以及(2)如果上方三列的单元格(E列)当前为空。

If Target.Column = 2 And Target.Offset(0, 3).Value = "" Then
Run Code Online (Sandbox Code Playgroud)

如果两个条件都成立,则使用该NOW()函数将日期放入E列的单元格中。

Target.Offset(0, 3) = Format(Now(), "HH:MM:SS")

范围偏移

范围栏


Hor*_*iux 0

恐怕没有这样的功能。您需要一个宏来完成此任务。

您可以在 E 列中执行类似的操作(记住设置自定义格式“dd/mm/yyyy hh:mm”):

=If(B1="";"";Now())
Run Code Online (Sandbox Code Playgroud)

但每次文件打开时它都会改变值。

您需要通过宏保存该值。