跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在Excel中快速生成随机时间?

Author: Xiaoyang Last Modified: 2025-08-22

在使用Excel时,为了测试、数据分析、排程或模拟等目的,常常需要插入随机数字、日期或文本字符串。然而,在某些情况下,你可能需要在特定范围内或以特定间隔插入随机时间,例如创建模拟时间表、填写考勤记录或为系统测试模拟基于时间的数据。虽然Excel没有直接提供随机时间生成功能,但有几种实用的解决方案可供选择,包括内置公式、易于使用的加载项功能以及灵活的VBA宏方法。

通过公式在Excel中生成随机时间

通过便捷功能在Excel中生成随机时间

通过VBA代码在Excel中生成随机时间


通过公式在Excel中生成随机时间

以下公式允许您根据需求创建随机时间,例如全天随机化、生成两个特定时间之间的时段,或按定义的间隔生成随机时间。这些方法非常适合大多数日常Excel任务,特别是当您希望即时获得结果而无需启用宏或安装插件时。

在Excel中生成随机时间

要快速用随机时间填充某个范围,请在空白单元格中输入以下公式。然后,拖动填充柄向下应用公式到其他行。这将提供格式化的随机时间值,范围介于00:00:00和23:59:59之间。

=TEXT(RAND(),"HH:MM:SS")

Generate random time

您可以根据需要将此公式复制到多行。请记住,RAND()每次工作表重新计算时都会生成一个新值,因此如果对工作表进行任何更改,随机时间也会随之更新。若要保留生成的时间,请复制结果并使用“粘贴值”覆盖公式。


在Excel中生成两个时间之间的随机时间

如果您想在受限的时间窗口内(例如11:00至15:00)生成随机时间,可以使用以下公式。这种方法非常适合模拟时间表、预约系统或时间窗口至关重要的模拟场景。

在空白单元格中输入以下公式。拖动填充柄覆盖需要填充随机时间的范围。

=TEXT(RAND()*(15-11)/24+11/24,"HH:MM:SS")

 Generate random time between two times

注意:在此公式中,1115表示24小时制的开始和结束时间。根据您的需求调整这些数字。分钟和秒将在该时间窗口内随机生成。

生成时间后,如果希望将其保持静态,请将其粘贴为值。请注意:如果您的时间值恰好从午夜开始或结束(00:00),请确保公式正确使用0和24以避免日期循环错误。


在Excel中以特定间隔生成随机时间

若要以设定的间隔(如每15或30分钟)随机生成时间,可以将FLOORRAND结合到TEXT函数中。这对于创建随机预订、设置随机事件开始时间或将模拟数据精确增量分布的任务尤其有用。

在空白单元格中输入或复制此公式。根据需要拖动填充柄以生成所需的随机间隔时间数量。

=TEXT(FLOOR(RAND(),"0:15"),"HH:MM:SS")

Generate random time at specific intervals

注意:在此公式中,“0:15”将间隔设置为15分钟。如需半小时间隔,请将其更改为“0:30”,或根据您的需求使用其他有效的Excel时间字符串。始终使用24小时制格式以防止出错。

 为了提高稳定性,在生成后将结果转换为数值。

a screenshot of kutools for excel ai

使用 Kutools AI 解锁 Excel 魔法

  • 智能执行:执行单元格操作、分析数据和创建图表——所有这些都由简单命令驱动。
  • 自定义公式:生成量身定制的公式,优化您的工作流程。
  • VBA 编码:轻松编写和实现 VBA 代码。
  • 公式解释:轻松理解复杂公式。
  • 文本翻译:打破电子表格中的语言障碍。
通过人工智能驱动的工具增强您的 Excel 能力。立即下载,体验前所未有的高效!

在Excel中生成两个日期时间之间的随机日期和时间

要生成随机日期和时间值——这对填充随机事件日志或调度记录非常有用——请使用以下公式。这种方法结合了日期和时间,可提供更全面的测试或模拟数据。

在单元格中输入或粘贴此公式,然后向下拖动以填充更多行。

=TEXT(RAND()*("2021-2-1012:00:00"-"2020-10-19:00")+"2020-10-19:00:00","YYYY-MM-DD HH:MM:SS")

Generate random date and time between two datetimes

注意:2020-10-19:00:002021-2-1012:00:00是起始点和终点——请根据需要调整。输入日期时使用YYYY-MM-DD HH:MM:SS格式,以避免歧义,尤其是当您的系统使用不同的日期格式时。

向下拖动公式时,每个单元格都会在您选择的区间内生成一个新的随机日期和时间。如果您只需要日期或时间部分,请相应调整公式格式(例如,仅使用“YYYY-MM-DD”作为日期)。


通过便捷功能在Excel中生成随机时间

如果管理公式显得繁琐,或者您需要快速自定义大规模随机数据,Kutools for Excel 提供了一个“插入随机数据”功能,只需点击几下即可插入随机数字、日期、时间和甚至自定义文本字符串。如果您频繁需要随机数据、想要避免公式重新计算或需要额外选项(例如在某一范围内插入唯一时间),这是特别适合的选择。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...
注意: 要使用“插入随机数据”,请先安装 Kutools for Excel,然后按照步骤操作。

安装 Kutools for Excel 后,请按照以下说明操作:

1. 选择一个空白单元格区域用于存放随机时间。

2. 导航至 Kutools > 插入 > 插入随机数据

click Insert Random Data feature of kutools

3. 在“插入随机数据”对话框中,转到“时间”选项卡,在“”和“”框中分别输入所需的开始和结束时间。

specify the start and end time

提示:为确保所有生成的时间都不同,请勾选“生成唯一值”选项。

4. 点击“确定”或“应用”。您的选择将立即被随机时间填充。

random time has been inserted into the cells

立即下载并免费试用 Kutools for Excel!

如果您需要随机时间保持静态(插入后不会改变),则“插入随机数据”功能尤为实用。


通过VBA代码在Excel中生成随机时间

另一种在Excel中生成随机时间的灵活方法是使用VBA宏。通过自定义VBA,您可以添加额外的要求——例如排除特定小时、按指定间隔生成时间或在工作表变化时自动更新随机时间。对于需要更多控制权或希望为多个范围或重复流程自动化随机时间生成的用户来说,使用宏特别有用。

以下是一个示例VBA宏,它可以在您选择的单元格中生成并填充随机时间。您可以根据需要调整开始/结束时间、随机化的粒度(分钟、秒)或排除某些小时。

1. 通过单击“开发工具”>“Visual Basic”打开VBA编辑器。在VBA窗口中,转到“插入”>“模块”。将以下代码复制并粘贴到新创建的模块中。(如果未显示“开发工具”选项卡,请在“Excel选项”>“自定义功能区”中启用它。)

Sub GenerateRandomTimes()
    Dim WorkRng As Range
    Dim StartHour As Integer
    Dim EndHour As Integer
    Dim ExcludeHour As Integer
    Dim cell As Range
    Dim xTitleId As String
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select range to fill random times:", xTitleId, WorkRng.Address, Type:=8)
    
    StartHour = Application.InputBox("Start hour (0-23):", xTitleId, 8, Type:=1)
    EndHour = Application.InputBox("End hour (1-24):", xTitleId, 18, Type:=1)
    ExcludeHour = Application.InputBox("Hour to exclude (if none, type -1):", xTitleId, -1, Type:=1)
    
    Application.ScreenUpdating = False
    Randomize
    
    For Each cell In WorkRng
        Dim h As Integer, m As Integer, s As Integer
        Do
            h = Int((EndHour - StartHour) * Rnd + StartHour)
        Loop While h = ExcludeHour
        
        m = Int(60 * Rnd)
        s = Int(60 * Rnd)
        
        cell.Value = TimeSerial(h, m, s)
        cell.NumberFormat = "hh:mm:ss"
    Next cell
    
    Application.ScreenUpdating = True
End Sub

2. 按F5 键运行宏。将出现一个提示,让您选择目标单元格范围。然后,您可以设置所需的开始小时、结束小时,以及(如有必要)要排除的任何小时。如果不想排除任何特定小时,请输入-1。宏随后将在您选择的范围内插入唯一随机时间。

这种VBA方法支持高级自定义,例如省略夜间小时或通过更改分钟或秒的随机化方式生成不同的间隔。如果在同一范围内重复运行宏,值将被覆盖——如果希望在新执行前保留它们,请始终将结果复制到别处。


更多相关文章:

  • 在两个日期之间生成随机日期
  • 当您使用Excel文件时,有时为了某种目的需要生成随机日期,当然您可以手动逐个输入日期,但如果需要插入多个日期,这种方法会非常耗时且枯燥。如何在Excel中快速生成地球上任意随机日期呢?
  • 检查时间是否介于两个时间之间
  • 在Excel中,如何检查特定时间是否介于两个给定时间之间?逐一检查会浪费大量时间,这里我将介绍一些简单的公式来解决这个问题。
  • 计算跨越午夜的时间差
  • 假设您有一个时间表记录您的工作时间,A列中的时间是今天的开始时间,B列中的时间是次日的结束时间。通常,如果您通过直接减去“=B2-A2”来计算这两个时间的差异,它将无法显示正确的结果,如左图所示。如何在Excel中正确计算跨越午夜的时间差?

最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠