有网友想要将一个 Excel 的排班清单(下图右)直接在一个月曆中显示(下图右),该若何处置?
【公式设计与解析】
先将日期範围内的贮存格界说名称为:日期。
以下以 2015/10/4 为例:
贮存格A8:="[早]"&OFFSET($J$2,SUMPRODUCT((日期=DATE($A$1,$G$1,A7))*
ROW(日期))-2,,,)
DATE($A$1,$G$1,A7):获得每一个贮存格所代表的日期。
SUMPRODUCT((日期=DATE($A$1,$G$1,A7))*ROW(日期)):获得贮存格A8所代表日期在资料清单中的『列号』。
OFFSET($J$2,SUMPRODUCT((日期=DATE($A$1,$G$1,A7))*ROW(日期))-2,,,):根据上式的『列号』,代入 OFFSET 函数查得J栏中对应的贮存格内容。
同理:
贮存格A9:="[中]"&OFFSET($K$2,SUMPRODUCT((日期=DATE($A$1,$G$1,A7))*
ROW(日期))-2,,,)
贮存格A10:="[晚]"&OFFSET($L$2,SUMPRODUCT((日期=DATE($A$1,$G$1,A7))*
ROW(日期))-2,,,)
複製贮存格A8:A10,贴至所有日期的贮存格中。
【延长处置】
若是在排班表中不是每一个日期都有排班,则可以点窜公式:
贮存格A8:=IFERROR(原公式,"")
即:
贮存格A8:=IFFERROR("[早]"&OFFSET($J$2,SUMPRODUCT((日期=
DATE($A$1,$G$1,A7))*ROW(日期))-2,,,),"")