Excel:在具有重复值的单元格中以升序查找数值

时间:2016-01-01 01:16:52

标签: database excel function indexing duplicates

几乎是新的一年。我已经说过一个Excel问题。

在工作表"锻炼"中,我有一个" WorkoutsSummary"表,包含以下信息:

Excel table

正如你所看到的,有两个细胞包含锻炼"战神" (这只是训练课程的名称),但是,在表格列标题"锻炼顺序" (第二栏),他们有不同的价值观。在表格中,我可以添加更多行,这些行可以包含相同的值(相同的锻炼,相同的开始时间,相同的结束时间,相同的锻炼持续时间),除了在锻炼顺序列中(每行都是唯一的) )。

所以,说到这里,我想要做的是在升序中显示名为" Results"的其他工作表中的所有Ares锻炼(这意味着显示锻炼持续时间值)。现在,正如我所说,它按升序排列,即使Ares重复两次,Workout Order中的数值也不是。这意味着在结果工作表中,它应首先显示第一个战神(包含锻炼持续时间16:03),并在其下方显示第二个战神(包含锻炼持续时间20:04)。

我创建了这段代码:

=INDEX(WorkoutsSummary[Workout Duration], MATCH("Ares", WorkoutsSummary[Workout], 0))

此代码在工作表结果中的单元格C13中使用,显示" 16:03",这是第一个战神的锻炼持续时间。 问题是我无法弄清楚如何使用其他代码来显示第二个战神。显然我不能使用相同的代码,因为我总是会显示相同的第一个战神的持续时间。当我认为锻炼顺序值发挥作用时。

任何不清楚的事情,评论和我都会尝试更好地解释。

1 个答案:

答案 0 :(得分:1)

您想使用small(if())

 =INDEX(WorkoutsSummary[Workout Duration], MATCH(SMALL(IF( "Ares" = WorkoutsSummary[Workout],WorkoutsSummary[Workout Order]),1),IF( "Ares" = WorkoutsSummary[Workout],WorkoutsSummary[Workout Order]), 0)) 

这是一个数组,需要使用Ctrl-Shift-Enter确认。

将小的第二个参数中的1更改为2以获得第二个,依此类推。

您可以使用Count()或其他一些功能来动态计算,但这会为您提供一些起点。