【问题标题】:Excel: look up for numeric values in ascending order, in cells that has duplicated valuesExcel:在具有重复值的单元格中按升序查找数值
【发布时间】:2016-04-05 19:21:21
【问题描述】:

快过年了。我有一个 Excel 问题,我已经说过了。

在工作表“Workouts”中,我有一个“WorkoutsSummary”表,其中包含以下信息:

如您所见,有两个单元格包含锻炼“Ares”(这只是训练课程的名称),但是,在表格列标题“锻炼顺序”(第二列)中,它们具有不同的值。在表格中,我可以添加更多行,这些行可以包含相同的值(相同的锻炼、相同的开始时间、相同的结束时间、相同的锻炼持续时间),except 在锻炼顺序列中(对于每一行都是唯一的)。

因此,话虽如此,我想做的是在名为“结果”的其他工作表中按升序显示所有 Ares 锻炼(这意味着显示锻炼持续时间值)。现在,正如我所说,它是按升序排列的,即使 Ares 重复了两次,但 Workout Order 中的数值却不是。这意味着在结果工作表中应首先显示第一个 Ares(包含 16:03 的锻炼持续时间),然后在其下方显示第二个 Ares(包含 20:04 的锻炼持续时间)。

我创建了这段代码:

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

此代码在工作表结果的单元格 C13 中使用,显示“16:03”,这是第一个 Ares 的锻炼持续时间。 问题是我不知道如何使用另一个代码来显示第二个战神。显然我不能使用相同的代码,因为我总是会显示相同的第一个战神的持续时间。这就是我认为锻炼顺序值发挥作用的时候。

任何不清楚的事情,评论,我会尽力解释得更好。

【问题讨论】:

  • 您可以为此使用数据透视表。

标签: database excel function indexing duplicates


【解决方案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确认。

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

您可以使用Count() 或其他一些函数来动态计数,但这会给您一些起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2023-03-16
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多