Microsoft Power Automate:Excel日期读取为序列号的解决方法求助
解决Power Automate读取Excel日期为序列号的问题
核心原因
Excel的日期本质上是从1899-12-30开始计数的序列号,Power Automate默认读取原始值而非格式化后的日期,导致你看到45224这类数字。以下是几种直接可行的解决办法:
方法1:使用Power Automate内置转换函数
直接用ConvertFromExcelDateTime函数将序列号转为标准日期时间格式,替换你原有的条件判断:
ConvertFromExcelDateTime(items('Apply_to_each')?['dateColumn']) > utcNow()
这个函数会自动识别Excel的日期序列号,转换为可与utcNow()直接比较的日期时间值,无需手动计算。
方法2:确保Excel列格式为日期类型
如果Excel中的日期列是文本/常规格式,Power Automate会直接读取原始文本或序列号。先在Excel中操作:
- 选中目标日期列,右键选择「设置单元格格式」
- 切换到「日期」标签,选择合适的日期格式(如
MM/dd/yyyy) - 重新刷新Power Automate的数据源,确保读取的是格式化后的日期值
方法3:手动公式转换(备用方案)
如果内置函数失效,可通过Excel日期的计数规则手动转换:
addDays('1899-12-30', items('Apply_to_each')?['dateColumn'], 'yyyy-MM-dd')
原理是Excel日期序列号代表从1899-12-30起的天数,用addDays函数累加对应天数即可得到标准日期,之后再与utcNow()做比较。
注意事项
- 确保动态内容引用的列名
dateColumn与Excel表格中的列名完全一致(大小写敏感) - 若使用手动转换,需确认Excel日期未启用「1904日期系统」(默认是1900系统,对应起始日期
1899-12-30)
内容的提问来源于stack exchange,提问作者Christian Manclossi
相关产品推荐
相关产品推荐

