Excel 动态范围内的秩子群

Excel 动态范围内的秩子群,excel,indexing,excel-formula,match,rank,Excel,Indexing,Excel Formula,Match,Rank,我有这样一个ROI比较表: Month | ROI | 1 | 2 | 3 | Jul | A | 1% | Jul | B | 3% | Jul | C | 2% | Jun | A | 4% | 6% | Jun | B | 5% | 7% | Jun | C | 6% | 8% | May | A | 2% | 4% | 7% | May | C | 3% | 5% | 6% | 我希望每个月对每个产品的投资回报率(

我有这样一个ROI比较表:

Month | ROI | 1  | 2  | 3  |
Jul   | A   | 1% | 
Jul   | B   | 3% |
Jul   | C   | 2% |
Jun   | A   | 4% | 6% |
Jun   | B   | 5% | 7% |
Jun   | C   | 6% | 8% |
May   | A   | 2% | 4% | 7% |
May   | C   | 3% | 5% | 6% |
我希望每个月对每个产品的投资回报率(A、B和C)进行排名——因此只对给定月份的最合适百分比进行排名

但范围需要动态,因为每种产品可能有不同的发布日期。例如,5月份没有产品B

因此,输出将是:

   Month  | ROI | 1  | 2  | 3  | Rank
    Jul   | A   | 1% |    |    | 3
    Jul   | B   | 3% |    |    | 1
    Jul   | C   | 2% |    |    | 2
    Jun   | A   | 4% | 6% |    | 3
    Jun   | B   | 5% | 7% |    | 2
    Jun   | C   | 6% | 8% |    | 1
    May   | A   | 2% | 4% | 7% | 1
    May   | C   | 3% | 5% | 6% | 2
我正在考虑使用索引/匹配功能:

=RANK(INDEX(G3:S3,MATCH(9^99,G3:S3,1)),G3:G5,0)

但我不确定如何使G3:G5动态化。

我想我在秩列中使用了以下公式:

=RANK(OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1),
      OFFSET(G3,COUNTIF(E3:$E$999,E3)-COUNTIF($E$1:$E$999,E3),
                SUM(--ISNUMBER(G3:S3))-1,COUNTIF($E$1:$E$999,E3)))
(假设您的月份位于
E1:E999

这样做的目的是查看
G3
,并使用
OFFSET
移动到最右边的非空(
ISNUMBER
)列,并将该值列在
OFFSET
数组中,其中月份与当前行的月份相匹配

让我们分解第二个
偏移量
公式(假设我们正在考虑
Jul
行):

  • 从G3开始
  • 行偏移量:当前行(含)下
    Jul
    行的计数-
    Jul
    行的总计数
  • 列偏移量:当前行中包含数字的单元格计数-1
  • 高度:
    Jul
    行的总计数
这是一个数组公式,因此必须使用Ctrl+Shift+Enter输入

注:如果月份相同,则公式假定最右边的值在同一列中。这在您给定的示例中适用,但我不知道它是否适用于您的完整数据集。如果通常情况下不是这样,则可以使用公式的第一个
偏移量
片段创建辅助列

=OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1)

获取每行中最右边的数字,然后在“帮助者”列中进行排名。

我想我已经在“排名”列中使用了以下公式:

=RANK(OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1),
      OFFSET(G3,COUNTIF(E3:$E$999,E3)-COUNTIF($E$1:$E$999,E3),
                SUM(--ISNUMBER(G3:S3))-1,COUNTIF($E$1:$E$999,E3)))
(假设您的月份位于
E1:E999

这样做的目的是查看
G3
,并使用
OFFSET
移动到最右边的非空(
ISNUMBER
)列,并将该值列在
OFFSET
数组中,其中月份与当前行的月份相匹配

让我们分解第二个
偏移量
公式(假设我们正在考虑
Jul
行):

  • 从G3开始
  • 行偏移量:当前行(含)下
    Jul
    行的计数-
    Jul
    行的总计数
  • 列偏移量:当前行中包含数字的单元格计数-1
  • 高度:
    Jul
    行的总计数
这是一个数组公式,因此必须使用Ctrl+Shift+Enter输入

注:如果月份相同,则公式假定最右边的值在同一列中。这在您给定的示例中适用,但我不知道它是否适用于您的完整数据集。如果通常情况下不是这样,则可以使用公式的第一个
偏移量
片段创建辅助列

=OFFSET(G3,,SUM(--ISNUMBER(G3:S3))-1)

获取每行中最右边的数字,然后在该帮助器列上进行排名。

使用


根据需要填写。

使用


根据需要加注。

请参阅。使用你的七月、六月、五月等作为分组。1、2、3等列可以使用。请参阅。使用你的七月、六月、五月等作为分组。1、2、3等列可以用a进行检索。因为您已经选择了问题的答案,我希望这将说明在整个列表中以升序和降序进行的条件排名。现在提起来可能太晚了,因为我相信你已经抓住了两个公式之间的逆序排序。因为你已经选择了你的问题的答案,我希望这将通过下面的例子说明升序和降序的条件排序。现在提起来可能太晚了,因为我相信你已经抓住了两个公式之间的逆序排序。