Excel-计算N的单元格总数的公式

Excel-计算N的单元格总数的公式,excel,excel-formula,Excel,Excel Formula,我想知道N加起来需要多少个单元格。请参见以下示例: number | cells to sum of 100 100 | 1 50 | 2 20 | 3 25 | 4 15 | 4 90 | 2 10 | 2 请参见最后一列,它将当前单元格+上一个单元格的最小数量相加为100 有没有办法做到这一点 谢谢。我用excel公式做了前3题: D3>100 C4是数字的起点,所以C4=100,C5=50等等。 公式适用于D4、D5、D

我想知道N加起来需要多少个单元格。请参见以下示例:

number | cells to sum of 100
  100   | 1
  50    | 2
  20    | 3
  25    | 4
  15    | 4
  90    | 2
  10    | 2
请参见最后一列,它将当前单元格+上一个单元格的最小数量相加为100

有没有办法做到这一点


谢谢。

我用excel公式做了前3题: D3>100 C4是数字的起点,所以C4=100,C5=50等等。 公式适用于D4、D5、D6等

关于D4:

=如果(C4>=D3;1;“假”)

关于D5:

=如果(C5>=D3;1;如果(C5+C4>=D3;2;“错误”))

在D6上:

=如果(C6>=D3;1;如果(C6+C5>=D3;2;如果(C6+C5+C4>=D4;3;“错误”))

您可以继续这样做,只需用更长/更新版本的IF(C6+C5+C4>=D4;3)替换“Error”


我不知道这是否是最好的方法,但这将实现它。

我使用excel公式完成了前3个步骤: D3>100 C4是数字的起点,所以C4=100,C5=50等等。 公式适用于D4、D5、D6等

关于D4:

=如果(C4>=D3;1;“假”)

关于D5:

=如果(C5>=D3;1;如果(C5+C4>=D3;2;“错误”))

在D6上:

=如果(C6>=D3;1;如果(C6+C5>=D3;2;如果(C6+C5+C4>=D4;3;“错误”))

您可以继续这样做,只需用更长/更新版本的IF(C6+C5+C4>=D4;3)替换“Error”


我不知道这是否是最好的方法,但这将实现它。

B2
中,数组公式**

=IFERROR(1+行(A$2:A2)-匹配(100,MMULT(转置(A$2:A2)),0+(行(A$2:A2)>=转置(行(A$2:A2)),-1),“不可能”)

按要求抄写

根据需要更改硬编码阈值(此处为100)

作为对该部分的解释:

MMULT(转置(A$2:A2),0+(行(A$2:A2)>=转置(行(A$2:A2)))

使用提供的数据并从
B5
中获取上述版本,即:

MMULT(转置(A$2:A5),0+(行(A$2:A5)>=转置(行(A$2:A5)))

第一部分,即:

转置(A$2:A5)

返回:

{100,50,20,25}

第二部分,即:

0+(行(A$2:A5)>=转置(行(A$2:A5)))

决心:

0+({2;3;4;5}>=转置({2;3;4;5}))

i、 e:

0+({2;3;4;5}>={2,3,4,5})

即:

0+{TRUE,FALSE,FALSE,FALSE;TRUE,TRUE,FALSE,FALSE;TRUE,TRUE,TRUE,FALSE;TRUE,TRUE,TRUE,TRUE})

即:

{1,0,0,0;1,1,0,0;1,1,1,0;1,1,1,1}

对矩阵乘法的理解将告诉我们:

MMULT(转置(A$2:A5),0+(行(A$2:A5)>=转置(行(A$2:A5)))

这是:

MMULT({100,50,20,25},{1,0,0;1,1,0,0;1,1,1,0;1,1,1,0;1,1,1,1})

是:

{195,95,45,25}

i、 e.四个元素分别等效于以下元素的数组:

=总和(A2:A5)
=总和(A3:A5)
=总和(A4:A5)
=总和(A5:A5)

问候


**数组公式的输入方式与“标准”公式的输入方式不同。您不必只按ENTER键,而是先按住CTRL和SHIFT键,然后再按ENTER键。如果操作正确,您会注意到Excel会在公式周围放上花括号{}(尽管您自己不要尝试手动插入这些).

B2
中,数组公式**

=IFERROR(1+行(A$2:A2)-匹配(100,MMULT(转置(A$2:A2)),0+(行(A$2:A2)>=转置(行(A$2:A2)),-1),“不可能”)

按要求抄写

根据需要更改硬编码阈值(此处为100)

作为对该部分的解释:

MMULT(转置(A$2:A2),0+(行(A$2:A2)>=转置(行(A$2:A2)))

使用提供的数据并从
B5
中获取上述版本,即:

MMULT(转置(A$2:A5),0+(行(A$2:A5)>=转置(行(A$2:A5)))

第一部分,即:

转置(A$2:A5)

返回:

{100,50,20,25}

第二部分,即:

0+(行(A$2:A5)>=转置(行(A$2:A5)))

决心:

0+({2;3;4;5}>=转置({2;3;4;5}))

i、 e:

0+({2;3;4;5}>={2,3,4,5})

即:

0+{TRUE,FALSE,FALSE,FALSE;TRUE,TRUE,FALSE,FALSE;TRUE,TRUE,TRUE,FALSE;TRUE,TRUE,TRUE,TRUE})

即:

{1,0,0,0;1,1,0,0;1,1,1,0;1,1,1,1}

对矩阵乘法的理解将告诉我们:

MMULT(转置(A$2:A5),0+(行(A$2:A5)>=转置(行(A$2:A5)))

这是:

MMULT({100,50,20,25},{1,0,0;1,1,0,0;1,1,1,0;1,1,1,0;1,1,1,1})

是:

{195,95,45,25}

i、 e.四个元素分别等效于以下元素的数组:

=总和(A2:A5)
=总和(A3:A5)
=总和(A4:A5)
=总和(A5:A5)

问候


**数组公式的输入方式与“标准”公式不同。不要只按ENTER键,而是先按住CTRL和SHIFT键,然后再按ENTER键。如果您做得正确,您会注意到Excel在公式周围放了一个大括号{}(尽管您自己不要尝试手动插入这些括号)。

解决这个问题的一种方法是创建一个方程的NxN矩阵,而不仅仅是一列。提供了一个示例图片。从E列到I列是隐藏的。右边的最后一列确定所需的数字

从理论上讲,如果要达到100行所需的行数是一个已知的小数字,那么也可以对方程进行硬编码。例如,如果行数始终为4或更少,则C8将
=IFS(B8>=100,1,SUM(B7:B8)>=100,2,SUM(B6:B8)>=100,3,SUM(B5:B8)>=100,4)
。顺便说一句,在第一行、第二行和第三行,你会遇到这个方程的和边界问题。因此,第一行需要是
=if(B8>=100,1,“”)
,第二行将是
=IFS(B9