3 维动态查找 - Google 张

3 Dimensional Dynamic Lookup - Google Sheets

我在我的个人帐户上创建了一个测试 sheet 以供参考。请看这里 (https://docs.google.com/spreadsheets/d/1GYZsonJNP4Wdt2GqjOE2NUJZybRTp-WcXP13BP2okS0/edit?usp=sharing)

2 个标签,都在同一个 sheet “抬头” “数据库”

简短摘要

条件

  1. 数据库第 2 行的日期时间必须是最接近 NOW() 的值。 编辑:必须先完成此检查,然后从找到的列开始完成条件 #2。
  2. 值是相应的“机器”行,也必须 >0(即如果满足条件 1 的第一列在相应行中有“0”,那么它应该移到下一列,等等直到它在相应行中找到任何数字 >0 的列)。

我已经提供了一个参考 sheet 来向您展示输出应该是什么,并且还突出显示了满足我上面的条件的值(假定 "Now()"="2/10/2021 14:37:00")

更新公式 向 Player0 大声疾呼,在这一点上表现出色!此处发布的最终公式将“NOW()”的假定值更新为实际动态值并四舍五入到最接近的 15 分钟!

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A,QUERY(SORT(SPLIT(FLATTEN(IF(Database!B3:N7<>"", 
     Database!A3:A7&"×"&IF((Database!B2:N2-CEILING(NOW(),"00:15"))>-0.166678240741021,Database!B2:N2, "0")&"×"&ROW(Database!A3:A7)&"×"&
     ABS(Database!B2:N2-VALUE(CEILING(NOW(),"00:15")))&"×"&Database!B3:N7)), "×"), 3, 1, 4, 1), 
     "where Col2 <> 0 and Col5 <> 0 and Col2 is not null format Col2 'dd/mm/yyyy hh:MM:ss'"), 2, 0)))

在 B2 尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A, 
 SORT(IFERROR(SPLIT(FLATTEN(IF(Database!B3:N7>0, 
 Database!A3:A7&"×"&Database!B2:N2&"×"&ROW(Database!A3:A7)&"×"&
 ABS(Database!B2:N2-"2/10/2021 14:37:00"), )), "×")), 3, 1, 4, 1), 2, 0)))


更新 1:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A, 
 QUERY(SORT(SPLIT(FLATTEN(IF(Database!B3:N7<>"", 
 Database!A3:A7&"×"&Database!B2:N2&"×"&ROW(Database!A3:A7)&"×"&
 ABS(Database!B2:N2-"2/10/2021 14:37:00")&"×"&Database!B3:N7)), "×"), 3, 1, 4, 1), 
 "where Col5 <> 0"), 2, 0)))


更新 2:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A,QUERY(SORT(SPLIT(FLATTEN(IF(Database!B3:N7<>"", 
 Database!A3:A7&"×"&IF((VALUE(Database!B2:N2)-
 VALUE("2/10/2021 14:37:00"))>-0.166678240741021,Database!B2:N2, "¤")&"×"&ROW(Database!A3:A7)&"×"&
 ABS(Database!B2:N2-"2/10/2021 14:37:00")&"×"&Database!B3:N7)), "×"), 3, 1, 4, 1), 
 "where Col5 <> 0 and Col2 is not null"), 2, 0)))