Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 计算非连续单元格数组中N个最大数的运行总数占连续单元格数组的百分比_Arrays_Excel Formula_Cumulative Sum - Fatal编程技术网

Arrays 计算非连续单元格数组中N个最大数的运行总数占连续单元格数组的百分比

Arrays 计算非连续单元格数组中N个最大数的运行总数占连续单元格数组的百分比,arrays,excel-formula,cumulative-sum,Arrays,Excel Formula,Cumulative Sum,我试图在一个非连续的范围内,根据他们的内部排名(从1到10),在一个连续的数组中,以百分比计算运行总数 我已设法使用以下公式分别计算每个“排名”单元的百分比: =SUMPRODUCT(--(ABS($Y$25:$Y$110)>=LARGE(ABS($Y$25:$Y$110);AX25));ABS($Y$25:$Y$110))/SUM(ABS($Y$25:$Y$110)) 在哪里 Y列是数据范围 列AX是从1到10的排名-例如,AX25为1,AX34为10 这将能够完成这项工作,但我更

我试图在一个非连续的范围内,根据他们的内部排名(从1到10),在一个连续的数组中,以百分比计算运行总数

我已设法使用以下公式分别计算每个“排名”单元的百分比:

=SUMPRODUCT(--(ABS($Y$25:$Y$110)>=LARGE(ABS($Y$25:$Y$110);AX25));ABS($Y$25:$Y$110))/SUM(ABS($Y$25:$Y$110))
在哪里

  • Y列是数据范围
  • 列AX是从1到10的排名-例如,
    AX25
    为1,
    AX34
    为10
这将能够完成这项工作,但我更愿意将其作为一个数组公式来完成,其中所有“排名”单元格都计算在一起。我已经尝试了以下公式:

=SUMPRODUCT(--(ABS($Y$25:$Y$110)>=LARGE(ABS($Y$25:$Y$110);$AX$25:$AX$34));ABS($Y$25:$Y$110))/SUM(ABS($Y$25:$Y$110))
我想在以下数组公式中使用此条件来计算数据范围中特定列中的前10个值:

=IF(INDEX($AH$25:$BL$110;MATCH(LARGE(ABS(OFFSET($AH$25:$AH$110;;S23));$Q$25:$Q$34);ABS(OFFSET($AH$25:$AH$110;;S23));0);S23+1)>0;
INDEX($AH$25:$BL$110;MATCH(LARGE(ABS(OFFSET($AH$25:$AH$110;;S23));$Q$25:$Q$34);ABS(OFFSET($AH$25:$AH$110;;S23));0);S23+1);0)
在哪里

  • 列AH:BL是数据范围(仅从第一个公式中的Y列展开)
  • 第23行表示到达数据范围内正确列的偏移量
  • Q列是从1到10的排名数字
添加了实体模型


红色字段表明,在给定范围内,N秩的累积值大于总值的80%,因此它们应该为零/“”。

有趣的问题,您能详细说明一下如何使用它吗?i、 e.您希望通过数组公式实现什么?是的,我希望N的最大值为10(因此前10),但前提是累积值低于总值的X%。我在考虑如果一个数字比X高,使用百分位数会更好,有什么想法吗?我想我明白你的意思了。出现错误的原因是公式试图在两列中找到匹配的单元格(即Y列中有86个单元格,AX列中只有10个单元格)。如果您只需要累积前10名,那么将AX25替换为10将为您提供该信息。然而,使其在1-10范围内动态需要更多的东西。问题是我已经有了一个连续数组来计算非连续范围内的前10个数字。然而,我希望这个数组在N的累积值超过80%时停止(为零),你能创建一个预期结果的模型,然后我们可以填补空白吗?有趣的问题,你能详细说明一下你需要如何使用它吗?i、 e.您希望通过数组公式实现什么?是的,我希望N的最大值为10(因此前10),但前提是累积值低于总值的X%。我在考虑如果一个数字比X高,使用百分位数会更好,有什么想法吗?我想我明白你的意思了。出现错误的原因是公式试图在两列中找到匹配的单元格(即Y列中有86个单元格,AX列中只有10个单元格)。如果您只需要累积前10名,那么将AX25替换为10将为您提供该信息。然而,使其在1-10范围内动态需要更多的东西。问题是我已经有了一个连续数组来计算非连续范围内的前10个数字。但是,我希望这个数组停止(为零),一旦N的累积值超过80%,您可以创建一个预期结果的模型,然后我们可以填补其中的空白吗?