如何在 Excel 中生成随机工作日或周末日期?
本教程旨在帮助学习者了解如何在 Excel 中生成随机工作日或周末日期。在本教程中,用户将了解三种执行此任务的方法。第一种方法是基于预定义公式生成随机日期。第二种方法允许用户使用 kutool 生成随机日期,最后一种方法允许用户使用 VBA 代码随机生成日期。相同的方法可用于生成工作日和周末日期。
示例 1:在 Excel 中生成随机工作日日期的示例。
步骤 1:
为了理解指导步骤,首先创建一个包含以下表格数据的 Excel 工作表:

步骤 2:
然后转到 A2 单元格。在单元格中输入提供的公式"=DATE(2023, 4, 1)+LARGE(IF(WEEKDAY(DATE(2023, 4, 1)+ROW($1:$365)-1, 2)<6, ROW($1:$365)-1, ""), RANDBETWEEN(1, SUM(--(WEEKDAY(DATE(2023, 1, 1)+ROW($1:$365)-1, 2)<6))))"。
说明
DATE() 是 Excel 中预定义的生成日期的方法,无需定义方法。只需调用该方法并传递所需参数即可生成日期。
WEEKDAY() − 此方法将生成一个位于工作日的日期。
2023 年是当前年份。
SUM():此方法用于计算总和。
参考以下公式快照
步骤 3:
按"Enter"键。这将显示一个随机的星期几,如下所示:

示例 2:使用 kutool 在 Excel 中生成随机周末日期的示例。
步骤 1:
请考虑以下示例工作表,其中包含 A2 单元格。

步骤 2:
之后,转到"Kutools"选项卡,选择"编辑"选项。然后选择"插入"选项。从新出现的下拉菜单中选择"插入随机数据"。

步骤 3:
这将打开如下所示的"插入随机数据"对话框。

步骤 4:
选择"日期"选项卡,并在"起始日期"和"结束日期"下拉菜单中设置日期。如果用户想要生成工作日,请选择"工作日"。在本例中,我们生成"周末"日期。最后,点击"确定"。

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

示例 3:使用 VBA 代码在 Excel 中生成随机工作日日期的示例。
步骤 1:
参考以下示例工作表。

步骤 2:
之后,转到"开发人员"选项卡,在"代码"部分下选择"Visual Basic"代码。

步骤 3:
这将打开以下代码区域:

步骤 4:
之后,转到"插入"选项卡并点击"模块"。

步骤 5:
这将打开一个用于编写模块的区域代码。

步骤 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 表达式
If Not rnd_y Then
'then update true
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)
' end of if block
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)
' 将临时数据存储到 weekdays(i) 位置
Week_days(i) = Temp
' next instruction
Next
'storing results
rnd_date = Application.WorksheetFunction.Transpose(Week_days)
' 功能模块结束
End Function
请使用正确的代码缩进,否则代码将在工作表上显示错误。
代码快照

步骤 7:
按"Ctrl+S"保存代码,然后打开工作表,调用方法"rnd_date(2023)",并将年份作为参数值传递。

步骤 8:
这将显示指定年份的随机日期。如下所示:

总结:
本教程将帮助用户了解如何使用三种不同的方法生成随机的星期几和周末日期。完成本教程后,用户将能够轻松生成日期。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/


