arrays - 如何比较重复的列,每个列都有一个数字范围,如果它们的数字范围相互重叠,则返回错误?
问题描述
我对 googlesheets 相当陌生,我为事先糟糕的解释道歉。正如标题所暗示的,我试图使用 googlesheet 公式弄清楚的是:
- 遍历整个列以查找重复项
- 在这些重复项中,比较它们的数字范围并检查是否有任何重叠的数字
- 如果任何数字重叠,则返回错误
谷歌表格链接:点击这里
在上面的 googlesheet 中,第 13 行会有问题,因为第 13 行的数学第 8 页与第 8 行的第 8 页重叠。
到目前为止,我的想法和尝试是将数字范围拆分为多个列,以便我可以将这些列中的每一列与重复的数字范围进行比较,但我不确定从这里之后该怎么做。另一个假设是我只需要比较最新的列来检查重复的课程和重叠范围,但我也不确定在这里使用什么。
我很欣赏任何尝试的提示和/或公式。
解决方案
尝试:
={"Warning"; INDEX(SUBSTITUTE(REGEXREPLACE(IFNA(VLOOKUP(B3:B&"", TRIM(SPLIT(FLATTEN(
QUERY(QUERY({SEQUENCE(COLUMNS(SPLIT(TEXTJOIN(",", 1, D3:D), ","))),
QUERY(FLATTEN(IF(IFERROR(SPLIT(D3:D, ","))="",,B3:B)),
"where Col1 is not null")&"×",
IF(COUNTIFS(QUERY(FLATTEN(IF(IFERROR(SPLIT(D3:D, ","))="",,C3:C&SPLIT(D3:D, ","))),
"where Col1 is not null"),
QUERY(FLATTEN(IF(IFERROR(SPLIT(D3:D, ","))="",,C3:C&SPLIT(D3:D, ","))),
"where Col1 is not null"), SEQUENCE(COLUMNS(SPLIT(TEXTJOIN(",", 1, D3:D), ","))),
"<="&SEQUENCE(COLUMNS(SPLIT(TEXTJOIN(",", 1, D3:D), ","))))>1, "Error,",
QUERY(FLATTEN(IF(IFERROR(SPLIT(D3:D, ","))="",,SPLIT(D3:D, ","))),
"where Col1 is not null")&",")},
"select max(Col3) group by Col1 pivot Col2"),,9^9)), "×")), 2, 0)), ",$", ), ", ", ","))}
推荐阅读
- r - 如何用受特定条件限制的其他字段的最大值/最小值替换字段中的值?允许重复条件
- android - Flutter webRTC | 当用户接到另一个电话并接听该电话时,如何结束通话
- html - 为什么当CSS中的背景是线性渐变时过渡不起作用
- android - 使用 withContext 与 suspendCoroutine 运行协程函数
- python - 使用 python 发送 html gmail 时不显示文本
- react-native - 如何在子组件中使用父回调?
- c++ - 使用 clang 编译 .cl 内核文件
- jquery - 隐藏第一个项目并显示第一个带有循环的隐藏项目
- c++ - 使用可变参数模板对重载方法进行自动参数转发
- jquery - 单击操作后存在具有特定类的计数元素