首页 > 解决方案 > 3 维动态查找 - Google 表格

问题描述

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

2 个选项卡,都在同一张表“查找”“数据库”上

简短的摘要

条件

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

我已经放了一张参考表来向您展示输出应该是什么,并且还突出显示了符合上述条件的值(假设“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)))

标签: google-sheetslookuparray-formulas

解决方案


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

推荐阅读