我需要以一种复杂的方式删除重复项。对于选定的行,我需要删除所有其他重复项以及我需要保留最早条目的其他行。
我在想什么(选定行:| Steve | 10pm |:
Table before:
| Steve | 10pm |
| Mike | 8pm |
| Steve | 4pm |
| Joe | 6pm |
| Mike | 3pm |
| Steve | 1pm |
Ex1:
Selected: | Steve | 4pm |
| Steve | 4pm |
| Joe | 6pm |
| Mike | 3pm |
Ex2
Selected: | Steve | 10pm |
| Steve | 10pm |
| Joe | 6pm |
| Mike | 3pm |
Ex3:
Selected: | Steve | 1pm |
| Joe | 6pm |
| Mike | 3pm |
| Steve | 1pm |
编辑:2016年12月19日上午12:02
我找到了解决我特定问题的方法。以下答案证明删除重复项是正确的。我能够成功找到一个位置。不过,我刚才意识到,这不是解决我遇到的更大问题的正确方法......
=MATCH(B2,unique(INDEX(SORT(sort({query(B2:C, "select B, min(C) where B <> '" &B2 & "' and B <> '' group by B label min(C) ''", 0); B2:C2}, 2, false),2,1 ),0,1)),0)
答案 0 :(得分:2)
比如说,您的数据位于A:B列中,所选的(某种方式?)行已复制到C1:D1。 (无论您的选择方法是什么,您都应该能够将所选行显示在某处)。然后可能的策略是:
query
选择所有非Steves,为每个人选择最早的时间。我是这样做的;查询范围从第2行开始,以避免(可能)标题。
=sort({query(A2:B, "select A, min(B) where A <> '" & C1 & "' and A <> '' group by A label min(B) ''", 0); C1:D1}, 2, false)
与换行符相同:
=sort({
query(A2:B,
"select A, min(B)
where A <> '" & C1 & "' and A <> ''
group by A
label min(B) ''
", 0);
C1:D1},
2, false)
因此,查询会选择与C1不同的名称,并按名称选择最早的时间。它不使用任何标题标签,以避免它们与排序混合。行C1:D1使用数组表示法{row1; row2}
附加,最后数组按降序排列第二列。