Excel中的行号和分区

时间:2018-01-15 20:23:20

标签: excel

我有excel中的数据,例如:

ID        | Fee
123456789 | 100
987654321 | 100
987654321 | 75
987654321 | 50

我需要计算非最高价格的物品的费用减免。电子表格按ID排序,然后以所需的方式收费。我不知道该怎么做是在excel中使用类似的row_number()over(partition by),我通常会在SQL中执行

所需的输出将是

ID        | Fee   | rn
123456789 | 100   | 1
987654321 | 100   | 1
987654321 | 75    | 2
987654321 | 50    | 3

3 个答案:

答案 0 :(得分:1)

这可能是一个更复杂的公式,人们可以抛出数据而不必随意使用数据,但我认为这可能是一个更简单的解决方案:

  1. 按ID(最小到最大)和费用(最小到最大)对数据进行排序 enter image description here

  2. 使用公式=Countif(A2:A5, A2)计算当前单元格及其下方每个单元格的数据中出现的相同id的次数。将其复制以填写缺失的列。 enter image description here

答案 1 :(得分:1)

您可以使用=COUNTIF($A$2:A2,A2);请注意,只有第一个$ A $ 2不会移动。

答案 2 :(得分:0)

此公式将完成此任务:

=COUNTIF($A$2:INDIRECT("A"&ROW(A2)),A2)

无需对数据进行排序,您也不会超出范围。

ROW()用于使范围动态化,因此,如果我们向下拖动公式,ROW()将始终为我们提供终点:

.get_or_create()