Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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
将for循环转换为Excel_Excel_Algorithm - Fatal编程技术网

将for循环转换为Excel

将for循环转换为Excel,excel,algorithm,Excel,Algorithm,我正在尝试将for循环等效为一个Excel可用条目。 我有一点编写代码的经验,但除了基本功能外,我没有使用Excel的经验 场景:查找购买N件物品的总成本。 每件商品的固定价格都高于上一件商品(目前为15%)。 我可以得到N项的费用。 我希望单元格显示所有项目(包括N)的总成本 N=列表中的项目总数,该值根据电子表格中其他地方的计算而变化 比率=15%或0.15,但可以更改,所以我不希望硬编码 这个公式给出了N项的成本_____ ((1/(1+比率))*((1+比率)^(N))) 我想下面这样的

我正在尝试将for循环等效为一个Excel可用条目。 我有一点编写代码的经验,但除了基本功能外,我没有使用Excel的经验

场景:查找购买N件物品的总成本。
每件商品的固定价格都高于上一件商品(目前为15%)。 我可以得到N项的费用。 我希望单元格显示所有项目(包括N)的总成本

N=列表中的项目总数,该值根据电子表格中其他地方的计算而变化

比率=15%或0.15,但可以更改,所以我不希望硬编码

这个公式给出了N项的成本_____ ((1/(1+比率))*((1+比率)^(N)))

我想下面这样的东西会有用,但我不知道如何编写这是Excel可以使用的一种方式

Total = 0;
for(i=1,i=N,i++){
  Total = Total+((1/(1+Rate))*(((1+rate)^(i)));
};
此图表显示了我所需的手动计算

项目→ N个项目的总成本

  • → 1.00
  • → 2.15
  • → 3.47
  • → 4.99
  • → 6.74
  • → 8.75
  • → 11.07
  • → 13.73
  • → 16.79
  • → 20.30
  • 提前感谢您提供的任何帮助

    Gary

    如果A1为“速率”,A2为“N”,则:

    如果A1为“速率”,A2为“N”,则:


    这是我想到的,尽管它有点类似于德克·雷切尔的伟大答案

    =SUMPRODUCT((1/(1+$B$2))*((1+$B$2)^ROW($A$1:A1)))
    
    基本上,我使用
    SUMPRODUCT
    将总数汇总到相应的行中


    这是我想到的,尽管它有点类似于德克·雷切尔的伟大答案

    =SUMPRODUCT((1/(1+$B$2))*((1+$B$2)^ROW($A$1:A1)))
    
    基本上,我使用
    SUMPRODUCT
    将总数汇总到相应的行中


    你不需要一个循环。几何序列的和有一个封闭的形式。你的每个术语都是
    (1+速率)^(N-1)
    ,所以前N个的和是
    ((1+速率)^N)-1)/Rate
    谢谢Jerry,这个答案正是我想弄明白的,但我只是不知道搜索它的术语“几何序列”。就像一个符咒,很容易使用。你不需要一个循环。几何序列和有一个闭合形式。你的每一个术语都是
    (1+速率)^(N-1)
    ,所以前N个术语的总和是
    ((1+速率)^N)-1)/Rate
    ,谢谢Jerry,这个答案正是我想弄明白的,但我只是不知道搜索它的术语“几何序列”。工作起来很有魅力,也很容易使用。谢谢德克的回答。我不理解“A1:Index”部分,所以我必须查找它,以便稍后使用。@GaryHullah
    Index
    返回一个范围(不是值)。因此,对于
    索引(A:A,A2)
    它将是列
    A
    ,并且是A2中指定的行(在这种情况下,它是14,所以它将是A14)
    SingleCell:SingleCell
    是一个范围,这样它就变成了从A1到A14的范围。在
    行中
    变成了一个简单的数组
    {1,2,3,4,5,6,7,8,9,10,11,12,13,14}
    ,用作递增的
    i
    。谢谢你的回答。我不理解“A1:Index”部分,所以我必须查找它,以便稍后使用。@GaryHullah
    Index
    返回一个范围(不是值)。因此,对于
    索引(A:A,A2)
    它将是列
    A
    ,并且是A2中指定的行(在这种情况下,它是14,所以它将是A14)
    SingleCell:SingleCell
    是一个范围,这样它就变成了从A1到A14的范围。在
    行中
    成为一个简单数组
    {1,2,3,4,5,6,7,8,9,10,11,12,13,14}
    ,用作递增的
    i