Excel 显示名字两次

Excel shows name twice

我的 Excel 出现问题,如果 'racers' 具有完全相同的时间,它会显示两次相同的名称。例如在图片中,赛车手 7 和 9 以及赛车手 5 和 10 有相同的时间,但在开始网格中它显示了两次相同的名字。应该是 4. Racer7 5. Racer9 & 9. Racer5 10. Racer10

单元格 I3 的功能 =IF(OR(ISBLANK(B3);ISBLANK(C3));"";INDEX($B:$B;MATCH(J3;$D:$D;0)))(我必须使用格式 ';' 而不是 ',')单元格 J3 的功能 =IFERROR(SMALL($D:$D;H3);"")

Link 到文件(在 Google 工作表中不起作用,函数必须使用本地格式)

xlsx file

为此你需要一个决胜局。不幸的是,最好的方法是使用辅助列。在我的测试中 sheet 我使用了 E 列,但该列当然可以在任何地方。更重要的是,它可以隐藏起来。在此列中,您输入一个公式,如

=D3+ROW()/10^8

关键是加法必须非常小,以至于对四舍五入的结果没有影响。因此,您在此处理的结果数量可能会有所不同。如果您发现加法改变了最后一行的结果,请增加指数。我所做的更改为每个结果增加 0.0001 秒,乘以行号:第一行 0.0001,第二行 0.0002,第三行 0.0003 等。检查第 10 行和第 100 行的结果。

现在 E 列中的结果完全不同,J 和 I 列中使用的正是这些结果。

[J3] =SMALL($E:$E,H3)

[I3] =INDEX($B:$B,MATCH(J3,$E:$E,0))

不会再重复,但抽签的 "winner" 取决于他在列表中的位置。

旧式数组公式式的解决方案是:

Note It's an array-formula which needs to be confirmed through CTRLSHIFTENTER

=IF(OR(ISBLANK(B3),ISBLANK(C3)),"",INDEX($B:$B,SMALL(IF($D:$D=J3,ROW($J:$J)),COUNTIF($J:$J3,J3))))

IF 检查时间列表中的当前时间值,并返回所有匹配的行,这些行按小排列。 COUNTIF 计算当前时间到当前行的出现次数。

MATCH 和 RANK 在处理时间时生病


公式

COMMA

[D3]    =IF(NOT(ISNUMBER(C3)),"",ROUND($D-A3*"00:10,0"-C3,8))
[H3]    =IF(ISNUMBER(K3),RANK(J3,D:D,2),"")
[I3]    =IF(IFERROR(INDEX($B:$B,SMALL(IF($D:$D=J3,ROW($J:$J)-ROW(J)+1),COUNTIF($J:$J3,J3))),"")=0,"",IFERROR(INDEX($B:$B,SMALL(IF($D:$D=J3,ROW($J:$J)-ROW(J)+1),COUNTIF($J:$J3,J3))),""))
[J3]    =IFERROR(SMALL($D:$D,A3),"")
[K3]    =IFERROR(J3-J,IF(I3="","","disqualified"))

冒号

[D3]    =IF(NOT(ISNUMBER(C3));"";ROUND($D-A3*"00:10;0"-C3;8))
[H3]    =IF(ISNUMBER(K3);RANK(J3;D:D;2);"")
[I3]    =IF(IFERROR(INDEX($B:$B;SMALL(IF($D:$D=J3;ROW($J:$J)-ROW(J)+1);COUNTIF($J:$J3;J3)));"")=0;"";IFERROR(INDEX($B:$B;SMALL(IF($D:$D=J3;ROW($J:$J)-ROW(J)+1);COUNTIF($J:$J3;J3)));""))
[J3]    =IFERROR(SMALL($D:$D;A3);"")
[K3]    =IFERROR(J3-J;IF(I3="";"";"disqualified"))

为什么 MATCH 'miscalculating' 在 OP 工作表的 'I6' 和 'I7' 单元格中变为“7”而不是“6”(公式在'D3')?

时间有很多小数点所以我猜是 'seeing' 'D8' 和 'D9' 中的值不同。为避免这种情况,您可以四舍五入这些值。如果您只想使用这些值,将它们四舍五入到 8 位小数就足以让数字被识别为不同,即使是毫秒。如果你想对它们求和,可能会有一些不准确之处。在 OP 的情况下,8 位小数就足够了。

RANK('H3'中的公式)如果没有四舍五入也是'miscalculating'。

为什么公式这么长?

最好在有和没有 IF 语句的情况下都尝试一下,然后自己看看。

这里有一个提示: