google-sheets - 在 Google 表格中检查值属于哪个范围
问题描述
我有以下方式的一些数据
类别 | [范围 1_min] | [范围 1_max] | [范围 2_min] | [范围 2_max] | ... |
---|---|---|---|---|---|
一个 | 120 | 130 | ... | ||
乙 | 100 | 119 | 131 | 140 | ... |
我希望能够快速查询一个数字并让它返回它所属的类别,例如 135 属于 B 和 121 属于 A。
我已经有一个执行此操作的脚本,但由于有 1000 多个类别,因此需要很长时间才能运行。有没有更快的方法来做到这一点?
谢谢。
解决方案
您可以使用LOOKUP
:
=ArrayFormula(LOOKUP(2,1/((G2>=B2:B)*(G2<=C2:C)+(G2>=D2:D)*(G2<=E2:E)),A2:A))
添加:
对于更多范围,您可以添加MMULT
(不确定是否更容易):
=ArrayFormula(LOOKUP(1,5/(MMULT(--(K2>={B2:B,D2:D,F2:F,H2:H}),ROW(A1:A4)^0)*MMULT(--(K2<={C2:C,E2:E,G2:G,I2:I}),ROW(A1:A4)^0)),A2:A))
一些条件:
- 将第一个参数更改
LOOKUP
为1
- 对于第二个
LOOKUP
参数,将分母更改为5
(要比较的列数 + 1) - 对于第二个
MMULT
参数ROW(A1:A4)
,根据列数使用行数进行比较(即 4 cols ->ROW(A1:A4)
,6 cols ->ROW(A1:A6)
etc.)
推荐阅读
- python - 用于在 Python 中匹配 URL 的正则表达式
- scala - 如何在运行测试之前启动 docker 容器
- python - VSCode:远程调试配置突然不起作用了
- spring-boot - Istio - GKE - gRPC 配置流关闭;上游连接错误或在标头之前断开/重置。重置原因:连接失败
- iterator - 在二叉堆上实现迭代器
- python - 在 conda 环境中 pip/pipenv 的隔离程度如何?
- node.js - Inside the Node script - npm ERR! code ELIFECYCLE
- c++ - 在两个相似的类之间使用 reinterpret_cast 时出现错误?
- c# - c# 将 UTC 时间转换为 Central,包括 DateTime 对象中的时区
- r - 如何创建 1000 个随机生成的 2x2 矩阵范围(-10 和 10)