我列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))
等式,以便在最近的日期返回此百分比。
答案 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)''")