Google表格:今天之前的最新日期

时间:2016-06-12 18:31:06

标签: google-sheets

我列R中的日期列表间隔两周,所以6/1 / 16,6 / 15 / 16,6 / 29/16等等。

在S到AF栏中,我会在对应于日期的行上每天标记“y”或“n”,在两周内直到下一个日期。

我想计算单元格P12中当前期间S:AF中“y”条目的百分比。

我有=(countif(S16:AF16,"y")/counta(S16:AF16))这是准确计算第16行中“y”条目的百分比,但我试图找出一个查询,它将选择当前期间的行(即最近的日期之前)到今天的日期)。因此,如果今天是6/1/16,我希望它以6/1/16给出行中“y”条目的百分比。如果今天是2016年6月14日,我希望它给我6/1/16行的百分比。但是今天是2016年6月15日,我想让它开始给我6/15/16行的百分比,依此类推。

我尝试了几种不同的查询设置,结果发生了一些混乱,以至于我甚至不知道从哪里开始。我试图做一些事情,它会查询today()之前的所有日期,然后选择那些的MAX,但我无法让它工作。

非常感谢任何帮助!

更新

我终于找到了这个查询,查找今天之前的所有日期:

=query(R15:AF,"select R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF where R < date '" & text(today(),"yyyy-MM-dd") & "'",0)

我可以在此周围加MAX()来获取最近的日期。但是,我仍然无法弄清楚如何应用=(countif(S16:AF16,"y")/counta(S16:AF16))等式,以便在最近的日期返回此百分比。

2 个答案:

答案 0 :(得分:0)

试试这个:

=QUERY(R:AF,
"select R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF 
where R = date '" & text(INDEX(R:R,MATCH(TODAY(),R:R,1)),"yyyy-MM-dd") & "'",0)

关键是使用MATCH(TODAY(),R:R,1)第三个参数(1)将给出不完全匹配,但只是您想要的日期位置:

  

1,默认值,导致MATCH假定范围已排序   升序并返回小于或等于的最大值   SEARCH_KEY。

答案 1 :(得分:0)

我相信必须有更好的方法来做到这一点,但这是有效的。调整范围(R:AF)以适合您的电子表格。

=query(transpose(query(R:AF,"select R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF where   datediff(now(),R)>=0 and datediff(now(),R)<=14",0)),"select count(Col1) where Col1 ='y' label count(Col1)''")/query(transpose(query(R:AF,"select R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF where datediff(now(),R)>=0 and datediff(now(),R)<=14",0)),"select count(Col1) where Col1 ='n' label count(Col1)''")