我想从用户年份和月份中获取两个输入,然后使用excel中的月份和年份的日期填充单元格。
例如:
输入年份:2017
输入月份:Jan
日期
2017年1月1日
2017年1月2日
2017年1月3日
2017年1月4日
。
。
。
。
当输入月份和年份时,单元格应自动填充。 提前感谢您的建议。
答案 0 :(得分:0)
没有背景,不清楚你需要什么。您是否希望用户在对话框中输入数据或将数据输入两个单元格?用户应该以什么格式输入日期?例如,1月应输入“Jan”,“January”,“1”等?您可能只需要设置31个引用输入单元格的公式,但您需要先确定如何处理该输入。
编辑:
这应该是一个评论,而不是答案,所以这是我的实际答案:
在单元格A1中,设置数据验证规则。该规则应该是一个列表,其来源为“Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec”或更长的形式,如果您愿意。现在,当您尝试编辑此单元格时,您可以选择从月份的下拉列表中进行选择。
如果您想限制年份范围,您可以在单元格B1中执行类似操作。只需在源字段中创建以逗号分隔的有效年份列表。
在单元格A3到A33中输入数字1到31,然后在单元格B3中输入此公式:
"=DATEVALUE(A3&"-"&$A$1&"-"&$B$1)"
自动填充/复制到B33。 DateValue函数采用计算的字符串(例如“2017年2月13日”)并将其转换为日期,然后您可以根据需要进行格式化。请注意,这将产生错误“#VALUE!”如果任一输入单元格为空白或者选择的月份没有31天,但您可以根据自己的需要进行修改。
答案 1 :(得分:0)
假设这一点。
单元格b1以月份的形式输入,创建名称范围rng
单元格d1作为年份输入,创建名称范围yearsamp
第I列和第J列有这个,在j3中有一个公式。
= IF(MOD(yearsamp,4)= 0,29,28)
month days
1 31
2 29
3 31
4 30
5 31
6 30
7 31
8 31
9 30
10 31
11 30
12 31
将单元格范围命名为工作日
在A2中使用此公式并填写
=IF(VLOOKUP(mnth,monthdays,mnth,FALSE)>=ROW(A2)-1,DATE(yearsamp,mnth,ROW(A1)),"N/A")
这是实现此目的的另一个选择
您也可以使用此公式。如上所述设置。
在第一个日期的第一个字段上输入A2
=DATE(d1,MATCH(b1,I1:I12,0),1)
在A3上写下这个forula并填写
=IF(ROW(a2)-1<VLOOKUP(mnth,mnthdays,2,FALSE),a2+1,"")
由于您有31个带公式的单元格,当月份日数小于31时会返回错误,但此公式显示为空白而没有错误。