excel 自动显示对应填充颜色格子的日期?

如题所述

第一步:建立一个宏表函数,命名为  颜色    =GET.CELL(63,Sheet1!D3)  注意需要先将单元格定位在你数据每一行的最后一个,我这里是N3单元格

第二步:在N3输入  =颜色,并且向右拉公式,向下拉公式

第三部:A3=TEXT($D$1&INDEX($A$2:$M$2,SMALL(IFERROR(IF(($N3:$W3=6),COLUMN($D$2:$AK$2)),999),1))&"日","mm-dd")

B3=TEXT($D$1&INDEX($A$2:$M$2,LARGE(IFERROR(IF(($N3:$W3=6),COLUMN($D$2:$AK$2)),0),1))&"日","mm-dd")

以上两个公式都是数组公式,输完按ctrl+shift+enter 

C3=B3-A3

这样就行了,有用望采纳!

追问

谢谢8爷
追加问题,后面紧随8月,9月,10月,这样跨月跨年所对应的日期应该如何设置,求教!

追答

那用公式会复杂多,直接用vba 来循环判断颜色,设置个宏按钮点一下。开始日期和结束日期自动出来。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-07-20

=自定义函数($D3:$AH3,COLUMN(A1))输入公式右拉下拉即可

使用excel中的VBA宏代码可实现该功能。

追问

老大
跨月跨年也能这样实现吗?

追答

只要你的需求够详细,应该没有什么是VBA做不了的,请提供测试文件及结果效果需求。

第2个回答  2022-07-20
记录数据的方法很多,哪种方式才是最合适自己的,各人有各人的标准。但有一点是最基本的要求,就是要便于数据的后期分析、统计。
按题主的记录格式,完全可以采用另一种方式来处理,以绕过处理颜色问题需要宏表函数或VBA的要求。
一、日期行数据,记录完整的日期,但通过设置单元格来只显示“日”,即设置单元格格式为:d
如7月1日,先输入7-1,会显示“7月1日”,而公式编辑栏中则显示“2022/7/1”,如上面所说,设置单元格格式后,就显示为“1”,右拉即可。
二、数据记录区域,选择要记录数据的区域,设置单元格格式,自定义:
[=1]"" ;G/通用格式
再设置条件格式,公式(如最左上角第一个记录数据——填充黄色的单元格是F6——截图不带行号和列标,回答起来真麻烦!):
=F6=1
格式——填充——黄色,确定,再确定。
这样当E1中输入1时,1不会显示,而是显示黄色。往右拉,或输入数字1均可实现你显示黄色的要求。
现在要得到某行的开始日期和结束日期,就极容易了(但截图没行号列标写起来就难了)

开始日期:
C6=TEXT(INDEX(F$5:ZZ$5,MATCH(1,F6:ZZ6,),"m/d")

结束日期:
D6=TEXT(LOOUP(2,F6:ZZ6,F$5:ZZ$5),"m/d")
天数:
=SUM(F6:ZZ6)
公式中假设行中的数据一直到ZZ列。
这样从数据记录开始就综合考虑,无论是记录数据还是统计分析,都是事半功倍。追问

高手若能截图说明一下,感激不尽

追答

有时间再帮你重新模拟截图。如果回答的当天有这个追问,那就直接用模拟的工作表截图给你回答了。

第3个回答  2022-07-20
使用excel中的VBA宏代码,单元格事件,可实现该功能。
截图连行列号都没的哟
相似回答