我有一个带有两个活动列的表。在A列中,我有2012年1月1日到2019年12月31日之间的所有日期。在B列中,我有一个对应的名称。例如:
[ 等
我想根据条件创建范围,例如:
窍门是,这应该按日历年完成,这意味着在8年期间,我应该有8组3列(从/到/名称),每个日历年一组。如果一个范围涵盖两年(例如,2012年11月1日至2013年2月1日),则2012年的最后一行应为 2012-11-01至2012-12-31 而2013年的第一行将显示 2013-01-01至2013-02-01
我设法将范围分开,但是由于某些原因,我无法继续进行每个日历年的操作。有办法吗?
答案 0 :(得分:0)
让我们假设您要放置从G列开始的8组3列,并且您在D:F范围内的列表在第1行具有标题,在第2行开始具有数据。在单元格G1中写下您的第一年(2012),在单元格H1中“发件人”,在单元格I1中“收件人”,并在单元格J1中“名称”。
现在在H2单元格中写入以下公式:
=IF(IF(OR(IF(AND($E2>=DATE(G$1,1,1),$D2<=DATE(G$1,12,31)),1,0),IF(AND($D2>=DATE(G$1,1,1),$E2<=DATE(G$1,12,31)),1,0)),1,0),MAX($D2,DATE(G$1,1,1)),"")
在I2单元格中编写以下公式:
=IF(IF(OR(IF(AND($E2>=DATE(G$1,1,1),$D2<=DATE(G$1,12,31)),1,0),IF(AND($D2>=DATE(G$1,1,1),$E2<=DATE(G$1,12,31)),1,0)),1,0),MIN($E2,DATE(G$1,12,31)),"")
在单元格J2中编写以下公式:
=IF(AND(H2<>"",I2<>""),F2,"")
根据需要将其中的3个一直拖到最下方。然后,您可以复制G:J范围,并在需要时随时粘贴在其旁边。只需在左上方的单元格中更改年份,就可以解决问题。
报告任何问题或遇到的错误。如果根据您的判断,此答案(或其他答案)是解决问题的最佳方法,那么您有幸接受(link)。