如何比较重复的列,每个列都有一个数字范围,如果它们的数字范围相互重叠,则返回错误?

Posted

技术标签:

【中文标题】如何比较重复的列,每个列都有一个数字范围,如果它们的数字范围相互重叠,则返回错误?【英文标题】:How can I compare duplicate columns, each with a range of numbers, and return error if their ranges of numbers overlap to each other? 【发布时间】:2021-10-24 06:38:18 【问题描述】:

我对 googlesheets 还很陌生,对于之前的糟糕解释,我深表歉意。 正如标题所示,我试图使用 googlesheet 公式计算的是:

    检查一整列是否有重复项 在这些重复项中,比较它们的数字范围并检查是否有任何重叠的数字 如果任何数字重叠,则返回错误

Google 表格链接:Click Here

在上面的 googlesheet 中,第 13 行会有问题,因为第 13 行的数学第 8 页与第 8 行的第 8 页重叠。

到目前为止,我的想法和尝试是将数字范围拆分为多列,以便我可以将这些列中的每一列与重复的数字范围进行比较,但我不确定从这里开始之后该怎么做.另一个假设是我只需要比较最新的列来检查重复的课程和重叠范围,但我也不确定在这里使用什么。

感谢您尝试任何提示和/或公式。

【问题讨论】:

“如果任何数字重叠,返回错误” - 仅针对该数字或整个单元格? 两者都适用于返回错误,但我相信这可以通过使用条件格式来完成?还是您的意思是重叠的数字? 【参考方案1】:

尝试:

="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)), ",$", ), ", ", ","))

【讨论】:

哇,谢谢!感谢您的帮助,我会多次阅读整个公式以完全理解它。 我知道我已经问得够多了,但您认为是否可以调整/简化公式,以便警告列仅在数字重叠时才返回错误?像arrayformula(如果(有一个重叠的数字),“错误”,“”)之类的东西。从这个意义上说,我认为它只有在每行编写公式时才有效。 @Michael 可能,但是让我们说 D14 的输出应该是什么? Error, Error?如果我们删除中间的 10 也会消失的数字 我觉得消失没问题。对于每一行的警告输出,如果公式得到简化并且需要写入每一行,则只需 Error(或字符串形式的“err”等)就可以了。 @Michael 查看您的表格:i.stack.imgur.com/kP5j0.png

以上是关于如何比较重复的列,每个列都有一个数字范围,如果它们的数字范围相互重叠,则返回错误?的主要内容,如果未能解决你的问题,请参考以下文章

规范化熊猫数据框的列

如何在数据表中使用输入字段添加最小和最大范围过滤器?

如何有效地生成组合而不重复,它们之间有特定的数字

在大型数据集上删除 Postgres 中的列

如何通过取消旋转标题行来转置Excel中的列[重复]

如何一次比较二维数组的2列与python中另一个数组的列