获取月份和年份的用户输入,以在Excel中填充具有该月份和年份日期的单元格

时间:2017-02-13 05:37:40

标签: excel date

我想从用户年份和月份中获取两个输入,然后使用excel中的月份和年份的日期填充单元格。

例如:

输入年份:2017

输入月份:Jan

日期
2017年1月1日
2017年1月2日
2017年1月3日
2017年1月4日 。 。 。 。

当输入月份和年份时,单元格应自动填充。 提前感谢您的建议。

2 个答案:

答案 0 :(得分:0)

没有背景,不清楚你需要什么。您是否希望用户在对话框中输入数据或将数据输入两个单元格?用户应该以什么格式输入日期?例如,1月应输入“Jan”,“January”,“1”等?您可能只需要设置31个引用输入单元格的公式,但您需要先确定如何处理该输入。

编辑:

这应该是一个评论,而不是答案,所以这是我的实际答案:

在单元格A1中,设置数据验证规则。该规则应该是一个列表,其来源为“Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec”或更长的形式,如果您愿意。现在,当您尝试编辑此单元格时,您可以选择从月份的下拉列表中进行选择。

enter image description here

如果您想限制年份范围,您可以在单元格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时会返回错误,但此公式显示为空白而没有错误。