我正在尝试编写一个宏来查找每年2月2日的A列,然后计算行数(天),直到B列中的值发生变化。此计数可以放在新列C列中,但与2月2日相同的行相关,在本例中为第3行。
使用下面的表格输出到C3将是5.我不计算2月2日那天,但我计算更改发生的那一天。这是我需要经历的100多年。
id | A | B | C
----------------------------
1 | 1946/01/31 | 0 |
2 | 1946/02/01 | 0 |
3 | 1946/02/02 | 0 |
4 | 1946/02/03 | 0 |
5 | 1946/02/04 | 0 |
6 | 1946/02/05 | 0 |
7 | 1946/02/06 | 0 |
8 | 1946/02/07 | 2 |
9 | 1946/02/08 | 0 |
答案 0 :(得分:0)
真正的挑战是用公式来做。好吧,2个公式。
单元格E2中的第一个公式通过在B列的文本末尾查找“02/02”找到2月2日的日期,如果找到它,则将C2的内容放在该单元格中。如果没有找到,它会将C1与D1,上面的2个单元格进行比较,看它们是否相同,因为之前找到了匹配,如果是,则需要上面的单元格内容。这导致您可以在2月2日和C列更改点之间的E列中看到零。
E2的公式,然后自动填充到数据末尾
=IF(AND(MONTH(B2)=2,DAY(B2)=2),C1,IF(AND(E1<>"",E1=C1),E1,""))
现在我们需要做的就是通过查找D列AND(E1="",E2<>"")
中的第一个非空白单元格来计算D列中的单元格,然后计算与该单元格匹配的所有单元格。我不确定你期望找到什么差距,但你可以改变200以确保你数一切。最后一部分是拿走1,这样第二个feb行就不计算了。
D2的公式,然后自动填充到数据末尾
=if(AND(E1="",E2<>""),countif(E2:E200,E2)-1,"")