在excel中的某个单元格输入月份 其他列自动填充日期 另一列自动填充对应的星期

以下回答只适用于日期从A1开始填充,因为要做表格,上方需要有表头,插入2行之后日期就从3号开始填充了,请大神帮忙改一下公式:
假定C1单元格用数据有效性设置一个选择(1-12)月份的下拉菜单,A1单元格输入公式:
=IF(C$1="","",IF(C$1<>MONTH(DATE(YEAR(TODAY()),C$1,ROW())),"",DATE(YEAR(TODAY()),C$1,ROW())))
B1单元格输入公式:
=IF(A1="","",CHOOSE(WEEKDAY(A1),"星期天","星期一","星期二","星期三","星期四","星期五","星期六"))
将两个公式向下复制到第31行。
如图 我是希望从B2开始填充的还是1号开始的

第1个回答  2015-01-11

A3=IF(C$3="","",IF(C$3<>MONTH(DATE(YEAR(TODAY()),C$3,ROW())),"",DATE(YEAR(TODAY()),C$3,ROW()-2)))

第2个回答  2015-01-11
亲,没太明白……你的意思是不管上方插入多少行,公式都从1号开始?追问

对的 因为是需要做表格 肯定有表头之类的 需要插入几行

追答

把ROW()改成ROW(A1)可以在一定条件下实现你的要求,但是有一定的局限性。这个和沈一民大神的方案是一样的,暂时我也没什么其它更好的办法了。

如下面的动画演示,在A2粘贴这个公式并下拉。当你要插入新行时,不能从第1行开始,而要至少从第2行开始(可以不断插入)。

=IF(C$1="","",IF(C$1<>MONTH(DATE(YEAR(TODAY()),C$1,ROW(A1))),"",DATE(YEAR(TODAY()),C$1,ROW(A1))))


本回答被网友采纳