(Excel)计算成本,其中价格根据数量而有所不同

时间:2018-07-17 07:27:22

标签: excel excel-formula

我正在寻找一些帮助,因为我不确定在下面的查询中使用正确的术语,因此尽管通常我会在Google上搜索它,但我不确定要搜索什么。

我需要计算出某件商品的总成本,在该价格中,您将获得统一的费用,然后根据您所拥有的东西的多少而改变额外的成本。

举个例子,您得到了支付车费的费用。如果您行驶0到20英里,您将获得10英镑。在30至50英里之间,您每英里可获得50便士。在51到100英里之间,您每英里可获得1英镑,依此类推,加上最初的10英镑的基本费率,您就可以按标准获得报酬。

这不是最好的例子,但是希望它能使我对我的追求有所了解。

如果我手动进行此操作,我会知道如何解决,但是我不确定要使用哪种公式-我从来没有使用过“ =”之后的复杂公式总和”。

如果任何人有任何示例,他们可以分享或可以向我指出Google什么样的事情,我将不胜感激!

谢谢

3 个答案:

答案 0 :(得分:1)

好吧,这是一种方法,但是您没有说明速率在21到30之间...

enter image description here

非常基础,但是您应该可以根据需要进行编辑和扩展。

请注意,公式中使用的限制(30英里,50英里)和费率全部来自表单-因此,如果30英里的限制更改为25英里-您要做的就是更改单元格A7 ...

答案 1 :(得分:0)

对Google的关注:“在IF中嵌套IF”

如何通过单行公式执行此操作:在B1中输入“ =IF(A1<20,10,IF(A1>50,IF(A1>50,10+A1,"u"),0.5*(A1))),在A1中输入里程数。

要学习如何构建它:

  • 确定条件:

condition1> 0-20英里,您将获得£10。

condition2>在30至50英里之间,您每英里可获得50p

condition3>在51-100英里之间,您将每英里增加1英镑,并增加10英镑

  • 将条件放入IF()语句

对于contition1>,只需在B2处键入“ =if(a1<20,10,0)”(然后尝试!)(:

注意:IF()函数的语法为if(“ condition”,“ if-true-do-this”,“ if-false-do-this”)

因此,对于condition2>“ =if(a1>20,a1*0.5,0)

对于condition3>,“ =if(a1>50,if(a1>50,10+a1),0)”更正:应该为“ =if(a1>50,10+a1,0)

组合所有条件>“ = IF(A1> 20,IF(A1> 50,IF(A1> 50,10 + A1,”错误“),0.5 *(A1)),10)”

请注意,我在等式的“ if-false-do-this”部分中将0更改为只是为了确保当输入的里程数小于0时它能显示某些内容。

希望有帮助。 /(^ _ ^)

答案 2 :(得分:0)

我很抱歉没有尽快回答,但是由于我们遇到的公式很复杂,我发现这个问题很难解决。我知道您所记录的问题并不是我们可能遇到的最复杂的问题,但是我不确定这是否是您的实际问题,还是打算作为一个简单的例子。我看到了很多其他的东西,这些东西经常让我陷入困境。

例如,采用以下规则:

Minimum Fee is $23.50 up to $500
$501 - $2,000 = $3.05 per 100 unit increment
$2,001 - $25,000 = $14.00 per 1000 unit increment over $2,000
$25,001 - $50,000 = $10.10 per 1000 unit increment over $25,000
$50,001 - $100,000 = $7.00 per 1000 unit increment over $50,000
$100,001 - $500,000 = $5.60 per 1000 unit increment over $100,000
$500,001 - $1,000,000 = $4.75 per 1000 unit increment over $500,000
$1,000,001 - $9,999,000 = $3.65 per 1000 unit increment over $1,000,000
$10,000,001 and up = $3.65 per 1000 unit increment over $10,000,000

它看起来与您的没有什么不同,除了单个单位以外,还有一些增量。换句话说,对于501美元至2,000美元的范围,501美元至600美元将全部获得相同的额外3.05美元增量费用。实际上,另一美元实际上将使这一数字翻倍,因为它跳到了下一个增量。像您的示例一样,每个范围都建立在先前的范围上。假设这些金额在A到F列中:

i   Low                 High    Fee     Base Fee    Per
0             1          500              23.50 
1           501        2,000    $3.05                100
2         2,001       25,000   $23.50               1000
3        25,001       50,000   $10.10               1000
4        50,001      100,000    $7.00               1000
5       100,001      500,000    $5.60               1000
6       500,001    1,000,000    $4.75               1000
7     1,000,001    9,999,999    $3.65               1000
8    10,000,000                 $3.65               1000

还请注意,费率随着金额的增加而下降,而您的金额似乎在增加。

我这样做是在H列中创建最大值,如下所示:

i   Max
0   =E3
1   =INT((C4-C3)/F4)*D4
2   =INT((C5-C4)/F5)*D5
3   =INT((C6-C5)/F6)*D6
4   =INT((C7-C6)/F7)*D7
5   =INT((C8-C7)/F8)*D8
6   =INT((C9-C8)/F9)*D9
7   =INT((C10-C9)/F10)*D10
8   

第一个(其中i为零)只是基本费用。其他的将被计算并复制。最后一行没有最大值。我并不是真的认为我需要此专栏,但是它使设计公式变得更加容易。

假设我在单元格I2中放置了要评估的金额,则将按以下方式进行评估,其中第3行(其中i = 0)中的公式是固定费用,而其他所有公式基本上都是复制的公式:

i   4,950
0   =IF(I$2>=$B3,$H3,0)
1   =IF(I$2>=$B4,IF($H4="",INT((I$2-$C3)/$F4)*$D4,MIN($H4,INT((I$2-$C3)/$F4)*$D4)),0)
2   =IF(I$2>=$B5,IF($H5="",INT((I$2-$C4)/$F5)*$D5,MIN($H5,INT((I$2-$C4)/$F5)*$D5)),0)
3   =IF(I$2>=$B6,IF($H6="",INT((I$2-$C5)/$F6)*$D6,MIN($H6,INT((I$2-$C5)/$F6)*$D6)),0)
4   =IF(I$2>=$B7,IF($H7="",INT((I$2-$C6)/$F7)*$D7,MIN($H7,INT((I$2-$C6)/$F7)*$D7)),0)
5   =IF(I$2>=$B8,IF($H8="",INT((I$2-$C7)/$F8)*$D8,MIN($H8,INT((I$2-$C7)/$F8)*$D8)),0)
6   =IF(I$2>=$B9,IF($H9="",INT((I$2-$C8)/$F9)*$D9,MIN($H9,INT((I$2-$C8)/$F9)*$D9)),0)
7   =IF(I$2>=$B10,IF($H10="",INT((I$2-$C9)/$F10)*$D10,MIN($H10,INT((I$2-$C9)/$F10)*$D10)),0)
8   =IF(I$2>=$B11,IF($H11="",INT((I$2-$C10)/$F11)*$D11,MIN($H11,INT((I$2-$C10)/$F11)*$D11)),0)

此费用是所有行的总和(上面标记为i,0到8)。在此示例中,该值为23.50加45.75加28.00,总计为97.25。

还不错。这样的集合怎么样:

No fee if $1,000 or less
$1,001 - $5,000 = $80.00 + 3% of excess over $1,000.00 per 100 unit increment
$5,001 - $10,000 = $250.00 + 2% of excess over $5,000.00 per 500 unit increment
$10,001 - $25,000 = $350.00 + 1% of excess over $10,000.00 per 1000 unit increment
$25,001 and Over = $520.00 + 3/4% of excess over $25,000.00 per 1000 unit increment

在您的公式中,初始固定金额永远不会更改,并且一旦计算出该范围的金额,便会在此范围上建立其他范围。这里有步骤。例如,在$ 1,000处,费用为零,但在$ 1,001处,跳至$ 80,好像前1000个费用中有$ 80。在不烦您整个表的情况下,这是计算从5,001到10,000范围的公式,假定G2包含要使用的数量,第5行A到E的列如下:

Low     High        Rate      Minimum   Increment
 5,001   10,000     2.00%        250         500 

=($D5+$C5*INT(($G$2-($A5-1))/$E5)*$E5)*($G$2>=$A5)*OR($B5="",$G$2<=$B5)

如果G2中的数量在从A列到B列的范围内,则该公式仅查看当前行并进行计算。

当每个范围累积建立在先前范围之上并且支付率始终在增加时(如美国税表),上述所有方法都会简化:

    Over    Not Over        
      0       9,525     10% of taxable income
  9,525      38,700     $952.50 plus 12% of the excess over $9,525
 38,700      82,500     $4,453.50 plus 22% of the excess over $38,700
 82,500     157,500     $14,089.50 plus 24% of the excess over $82,500
157,500     200,000     $32,089.50 plus 32% of the excess over $157,500
200,000     500,000     $45,689.50 plus 35% of the excess over $200,000
500,000                 $150,689.50 plus 37% of the excess over $500,000

在这里,我们可以使用称为“桌面板方法”的方法来简化计算

假设要评估的金额在G1中,并且在第1行中从A到C列中。

Over    Not Over    Rate
      0   9,525     10.0%
  9,525  38,700     12.0%
 38,700  82,500     22.0%
 82,500 157,500     24.0%
157,500 200,000     32.0%
200,000 500,000     35.0%
500,000             37.0%

我们根据G1计算如下:

=ROUND(SUMPRODUCT($C$2:$C$8-$C$1:$C$7,$G$1-$A$2:$A$8,N($G$1>$A$2:$A$8)),0)

注意:这不会作为数组公式输入。

这与您的问题有何关系。如果需求就像您所说的那样简单(换句话说,费率一直在增加,我们在报销上没有任何“步骤”,那么我们可以像计算美国税收一样计算它。

我从第1行开始在A到D列中创建了这些值。

Over    Not Over        
  0      20     £-      Flat Amount of £10.00
 20      50     £0.50   £10.00 plus £.50 per mile over 20 miles
 50     100     £1.00   £25.00 plus £1.00 per mile over 50 miles
100             £1.50   £75.00 plus £1.50 per mile over 100 miles

其中D列仅是描述性的。我将£10.00的固定费用放在Cell E1中。

假设G1包含里程数,我们将报销计算为:

=$E$1+ROUND(SUMPRODUCT($C$2:$C$5-$C$1:$C$4,$G$1-$A$2:$A$5,N($G$1>$A$2:$A$5)),2))

例如,当G1为52英里时,计算结果为£27.00

注意:这不会作为数组公式输入。

因此,如果是这种情况,您需要的是一个容纳A到C列的地方,一个用于存放固定金额的地方,以及一个类似于我提供的公式的公式,该公式用于基于英里数。

请注意,前面的所有项目都表明,如果费率步进或费率下降或增量单位不是1英里,则此公式将不是那么简单。

我希望其中一些是有道理的。祝好运。