如何在Excel中生成随机的工作日或周末日期?

如何在Excel中生成随机的工作日或周末日期?

本教程旨在帮助学习者了解在Excel中生成随机工作日或周末日期的技巧。在本教程中,用户将了解执行此任务的三种可能方法。第一种方法基于使用预定义的公式生成随机日期。第二种方法允许用户使用kutool生成随机日期,而最后一种方法允许用户使用VBA代码随机生成日期。相同的方法可用于生成工作日和周末日期。

示例1:在excel中生成随机工作日日期的示例。

步骤1:

为了理解指导步骤,首先创建以下给定表数据的Excel工作表:

如何在Excel中生成随机的工作日或周末日期?

步骤2:

然后转到A2单元格。键入提供的公式“=DATE(2023,4,1)+LARGE(IF(WEEKDAY(DATE(2023,4,1)+ROW(11:365)-1,2)<6,ROW(11:365)-1,“),RANDBETWEEN(1,SUM(–(WEEKDAY(DATE(2023,1,1)+ROW(11:365)-1,2)<6))))”到单元格。

解释

DATE()是预定义的Excel方法,用于生成日期,无需定义方法。简单地调用该方法并传递所需的参数以生成日期。

WEEKDAY() - 这个方法将生成一个在工作日的日期。

2023是当前年份。

SUM() – 这是一种用于计算总和的方法。

请考虑以下公式快照

如何在Excel中生成随机的工作日或周末日期?

步骤3:

按“Enter”键。这将显示一个随机的工作日,如下所示:

如何在Excel中生成随机的工作日或周末日期?

示例2:通过使用kutool在excel中生成随机的周末日期。

步骤1:

考虑下面给出的带有A2活动单元格的样本工作表。

如何在Excel中生成随机的工作日或周末日期?

步骤2:

然后转到“Kutools”选项卡并选择“编辑”选项。然后选择“插入”选项。从新出现的下拉菜单中,只需选择“插入随机数据”即可。

如何在Excel中生成随机的工作日或周末日期?

步骤3:

这将打开下面给出的“插入随机数据”对话框。

如何在Excel中生成随机的工作日或周末日期?

步骤4:

选择“日期”选项卡,并在输入下拉菜单中设置日期。如果用户想要生成工作日,则选择“工作日”。对于此例子,让我们生成一个“周末”日期。最后,单击“确定”。

如何在Excel中生成随机的工作日或周末日期?

步骤5:

这将在控制台上显示一个随机日期。

如何在Excel中生成随机的工作日或周末日期?

示例3:通过使用VBA代码在excel中生成随机工作日日期的示例。

步骤1:

考虑下面给出的样本工作表。

如何在Excel中生成随机的工作日或周末日期?

步骤2:

然后转到“开发人员”选项卡,在“代码”部分下选择“Visual Basic”代码。

如何在Excel中生成随机的工作日或周末日期?

步骤3:

这将打开下面给出的代码区域:

如何在Excel中生成随机的工作日或周末日期?

步骤4:

然后转到插入选项卡,单击“模块”。

如何在Excel中生成随机的工作日或周末日期?

步骤5:

这将打开一个区域以编写模块代码。

如何在Excel中生成随机的工作日或周末日期?

步骤6:

在上面的代码区域中,键入以下给定代码:

'声明布尔变量
Dim rnd_y As Boolean
'定义名称为rnd_date的函数
Function rnd_date(pYear As Long)
    '声明所需变量
    Dim i As Long
    '存储一年中的天数的变量
    Dim day_in_year As Long
    Dim x_ind As Long
    Dim rnd_ind As Long
    Dim Temp As Date
    '存储星期几的变量
    Dim Week_days() As Variant
    '如果表达式检查rnd_y的值是否为0
    If Not rnd_y Then
        '则将其更新为真
        rnd_y = True
        '生成随机值
        Randomize
    '完成if块
    End If
    '利用以下给定的公式计算一年中的天数
    day_in_year = DateSerial(pYear + 1, 1, 1) - DateSerial(pYear, 1, 1)
    ReDim Week_days(1 To day_in_year)
    '用于迭代数据值的for循环
    For i = 1 To day_in_year
        ' 如果星期几小于6
        If Weekday(DateSerial(pYear, 1, i), vbMonday) < 6 Then
            '则执行以下指令
            x_ind = x_ind + 1
            Week_days(x_ind) = DateSerial(pYear, 1, i)
        '结束if
        End If
    '下一个块
    Next
    ReDim Preserve Week_days(1 To x_ind)
    '用于检查循环值的for循环
    For i = x_ind To 1 Step -1
        '将获得的数据强制转换为int
        rnd_ind = Int(i * Rnd + 1)
        '再次调用week_days方法
        Temp = Week_days(rnd_ind)
        Week_days(rnd_ind) = Week_days(i)
        '将temp数据存储在weekdays(i)位置
        Week_days(i) = Temp
    '下一指令
    Next
    '存储结果
    rnd_date = Application.WorksheetFunction.Transpose(Week_days)
'函数模块结束
End Function
Bash

请使用正确的代码缩进,否则代码将在工作表上显示错误。

代码快照

如何在Excel中生成随机的工作日或周末日期?

如何在Excel中生成随机的工作日或周末日期?

第7步:

按“Ctrl+S”保存代码,然后打开工作表,调用方法“rnd_date(2023)”并将年份作为参数值。

如何在Excel中生成随机的工作日或周末日期?

第8步:

这将显示所提供年份的随机日期,如下所示:

如何在Excel中生成随机的工作日或周末日期?

结论:

本教程让用户了解使用三种不同方法生成随机工作日和周末日期的方式。完成本教程后,用户将能够轻松生成日期。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册