2017-04-03 153 views
1

在Google表格中最接近的值,我試圖返回與使用Excel中的INDEX MATCH的日期範圍之間的最小絕對最接近值關聯的帳戶名稱。GoogleSheets INDEX MATCH爲日期範圍

=ARRAYFORMULA(INDEX(B2:B,MATCH(MIN(ABS(C2:C-$G$5)),ABS(C2:C-$G$5),(A2:A>=G2)*(A2:A<=G3)))) 

下面是數據值:

  • 列A爲評價
  • 列B的時間範圍是我想要檢索
  • 列C中的名稱是將要減去的數字從猜測到找到最小的絕對差異。
  • G5是猜測。
  • G2和G3是我想搜索的日期範圍的開始和結束。

下面是一些僞數據的樣本:

enter image description here

眼下公式的工作...八九不離十。通過指定它返回與最小絕對最接近的值,但不能從日期範圍相關聯的賬戶名:

(A2:A>=G2)*(A2:A<=G3) 

這裏是正在恢復帳戶「A」,因爲它是第一個值和最接近的猜測,但它在G2和G3指定的日期範圍之外。

從這個例子中應該返回的正確答案是「C」,從單元格B4開始。

我在做這個公式的錯誤是什麼?

謝謝!

回答

1

match()的第三個參數應該是-1, 0, or 1。所以基本上(A2:A>=G2)*(A2:A<=G3)部分在你的公式中是沒有的。如果你想匹配一些範圍,你可以使用filter()。所以你的公式應該是這樣的。

=arrayformula(
    index(
    filter(B2:B, A2:A >= $G$2, A2:A <= $G$3), 
    match(
     min(abs(filter(C2:C, A2:A >= $G$2, A2:A <= $G$3) - $G$5)), 
     abs(filter(C2:C, A2:A >= $G$2, A2:A <= $G$3) - $G$5), 
     0 
    ) 
    ) 
) 

我測試了它,它工作。示例表是here

+0

巨大!謝謝! – Chef1075