2016-06-12 57 views
0

我在列R中列出了間隔兩週的日期列表,所以6/1/16,6/15/16,6/29/16等Google表格:QUERY今天之前的最近日期

在S列到AF列中,我會在對應於日期的行的每一天中標記「y」或「n」,直到下一個日期爲止的兩週內。

我想計算單元格P12中當前期間S:AF中「y」條目的百分比。

我有=(countif(S16:AF16,"y")/counta(S16:AF16))這是準確地計算在第16行「y」條目的百分比,但我想找出一個查詢,將選擇當前期間的行(即在今天的日期之前的最近日期)。所以如果今天是6/1/16,那麼我希望它能在6/1/16中給我一行中「y」條目的百分比。如果今天是6/14/16,我希望它能給我6/1/16排的比例。但是,如果今天是6/15/16,我希望它開始給我6/15/16比賽的比例,以此類推。

我已經嘗試了幾個不同的查詢設置,並最終導致了一些混亂的事情,我甚至不知道現在從哪裏開始。我試圖做一些事情,它會查詢today()之前的所有日期,然後選擇這些的最大值,但我無法使其工作。

任何幫助將不勝感激!


UPDATE

我終於前今天想通了這個查詢,它查找所有日期:

=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

試試這個:使用MATCH(TODAY(),R:R,1)第三個參數(1)將給出不準確匹配

=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) 

的關鍵是,但日期正好的位置,你想:

1,默認值,導致MATCH假定範圍按 升序排序,並返回小於或等於 search_key的最大值。

+0

嘿馬克斯,謝謝你的回答。我實際上想出了一個解決方法,但想試試看看它是否有效。目前它給我一個「循環依賴」的錯誤,雖然。 – Shoelaced

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)''") 
+0

嘿,Ed,謝謝你的迴應!我想出了一個解決方法,但我嘗試了你的。它給了我一些計算,但不是正確的一個......現在我在R到AF(有一些空白單元格)列中有9'n'個單元格和2個'y'單元格,它給我33.33%...但兩個絕對不是十一的三分之一...... – Shoelaced

相關問題