3 维动态查找 - Google 张
3 Dimensional Dynamic Lookup - Google Sheets
我在我的个人帐户上创建了一个测试 sheet 以供参考。请看这里 (https://docs.google.com/spreadsheets/d/1GYZsonJNP4Wdt2GqjOE2NUJZybRTp-WcXP13BP2okS0/edit?usp=sharing)
2 个标签,都在同一个 sheet
“抬头”
“数据库”
简短摘要
- “查找”选项卡上的单元格“B2”中需要一个数组公式,这将
填充整行。该公式需要从“数据库”选项卡的第 2 行中为匹配的机器提取相应的日期时间。
条件
- 数据库第 2 行的日期时间必须是最接近 NOW() 的值。 编辑:必须先完成此检查,然后从找到的列开始完成条件 #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)))
我在我的个人帐户上创建了一个测试 sheet 以供参考。请看这里 (https://docs.google.com/spreadsheets/d/1GYZsonJNP4Wdt2GqjOE2NUJZybRTp-WcXP13BP2okS0/edit?usp=sharing)
2 个标签,都在同一个 sheet “抬头” “数据库”
简短摘要
- “查找”选项卡上的单元格“B2”中需要一个数组公式,这将
填充整行。该公式需要从“数据库”选项卡的第 2 行中为匹配的机器提取相应的日期时间。
条件
- 数据库第 2 行的日期时间必须是最接近 NOW() 的值。 编辑:必须先完成此检查,然后从找到的列开始完成条件 #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)))