【问题标题】:Get rank of unique verion of an Excel range获取 Excel 范围的唯一版本的排名
【发布时间】:2013-10-18 19:58:35
【问题描述】:

我正在尝试从值列表中获取排名,但我希望排名基于列表的唯一版本。我想做的是像

=RANK.EQ(value, UNIQUE(list_of_values))

我不知道如何获取公式中的唯一值。我在how to output unique values to a new row 上看到了答案,但我不需要打印值,所以我希望有一个更简单的解决方案。

举个例子,像这样的列表

|Week Ending|
|10/10/13|
|10/10/13|
|10/10/13|
|10/17/13|

我得到的最接近的是 RANK.EQ(value, list_of_values, 1),它给了我

|Week Ending|Week Number|
|10/10/13| 1|
|10/10/13| 1|
|10/10/13| 1|
|10/17/13| 4|

我要找的是

|Week Ending|Week Number|
|10/10/13| 1|
|10/10/13| 1|
|10/10/13| 1|
|10/17/13| 2|

编辑:

我最初并没有澄清这一点,但我的值不一定按排序顺序。

【问题讨论】:

  • 第一列是否已排序?但是您的第二个列名似乎有点误导..?我不确定“周数”如何成为排名?如果它们实际上是周数,则不需要排名(?)。
  • 当我问这个问题时,我不知道 WeekNum,这是我的解决方案。我的用例是为事件分配周数(如活动的第 1 周、第 2 周等)。但要回答您的问题,第一列不一定按排序顺序。

标签: excel excel-formula


【解决方案1】:

对于这个具体示例,WEEKNUM() 可用于创建有效的日期排名:

=WEEKNUM(value, list_of_values, 1) + 1 - WEEKNUM(MIN(list_of_values))

这是因为要么所有日期都发生在一周的同一天,要么发生在同一周的日期被认为具有相同的排名。

“Week”可以连接到这些值以创建“Week 1”、“Week 2”等的输出。

【讨论】:

    【解决方案2】:

    您可以使用相当简单的公式,使用两列:

    假设你的日期在A1:A10

    B1 包含这个公式:=RANK(A1,$A$1:$A$10)

    将该公式复制到B10

    C1 包含这个公式:=B1

    C2 包含这个公式:=IF(B2=B1,C1,C1+1)

    将该公式复制到C10

    您也可以使用RANK.EQ 函数代替RANK

    【讨论】:

    • 如果值已排序,这是一个很好的解决方案,我应该指定,但我的值不一定按排序顺序。
    【解决方案3】:

    通过 Andy G,=WEEKNUM() 解决了我的问题。更一般地说,

    = WEEKNUM(value, list_of_values, 1) + 1 - WEEKNUM(MIN(list_of_values))

    给出可用于制作“第 1 周、第 2 周”等标签的数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多