【问题标题】:excel, get number from 1 table, and sum based on criteria in 2ndexcel,从1个表中获取数字,并根据第二个标准求和
【发布时间】:2016-10-27 21:18:10
【问题描述】:

我有 2 张桌子:

 name   date    param   if
DO03    1999-05-01  1,18    no
AM01    1999-05-02  2,15    no
AM01    1999-05-03  1,98    no
AM01    1999-05-04  2,05    yes
MA03    1999-05-05  1,50    no
MA02    1999-05-05  1,45    yes
AM01    1999-05-07  2,22    no
AM02    1999-05-08  1,56    no
SA02    1999-05-09  1,60    yes
MA03    1999-05-11  1,05    yes
MA02    1999-05-12  1,52    no
SA01    1999-05-13  2,17    yes
CY01    1999-05-14  2,00    yes
SA03    1999-05-15  0,97    yes
MA03    1999-05-16  1,11    no
DO01    1999-05-18  1,89    yes
MA01    1999-05-19  1,95    no
AM03    1999-05-20  0,95    yes
AM03    1999-05-21  1,20    yes
SA01    1999-05-23  1,90    no
AM01    1999-05-24  1,97    no
DO01    1999-05-25  2,10    yes
SA03    1999-05-26  1,15    no
AM01    1999-05-27  2,12    yes
DO02    1999-05-28  1,47    yes
CY03    1999-05-29  0,94    no
CY02    1999-05-30  1,48    no

 name   type param price
CY03    M   1,0 12,50
    DO03    M   1,0 13,00 
    AM03    M   1,0 14,00 
    MA03    M   1,0 15,00 
    SA03    M   1,0 16,00 
    CY02    S   1.5 18,75 
    DO02    S   1.5 19,50 
    AM02    S   1.5 21,00 
    MA02    S   1.5 22,50 
    SA02    S   1.5 24,00 
    CY01    D   2,0 25,00 
    DO01    D   2,0 26,00 
    AM01    D   2,0 28,00 
    MA01    D   2,0 30,00 
    SA01    D   2,0 32,00 

我正在尝试做什么。 我想对所有“是”值的产品的价格求和。

f.e.当第一张桌子上有“是”时(所以首先是 AM01),我想从第二张桌子上得到这个产品的价格,另一个是是,另一个等等。 并将其相加为一个值。 我尝试使用 sumif、sumifs 但这比通常的 sumif 练习要难一些。 如有任何建议,我将不胜感激。

编辑:忘记了——当我通过每一行的 vlookup 函数获得这个价格时,我设法用 temp 列做到这一点,然后对这个新列求和。但是有没有办法在一个命令中做到这一点?

【问题讨论】:

  • 看起来您需要先输入 VLookup,然后进行计算,或者结合 IF、VLOOKUP,然后将该列与该计算相加。
  • 使用您提供的样本数据,您的预期总数是222(每个唯一的“yes”值仅对“yes”值求和一次)或290(不管每个“yes”值单独求和重复)?
  • 290,不考虑重复。
  • 如果可行,您可以创建一个用户定义的函数。

标签: excel excel-formula


【解决方案1】:

您可以在 SUMPRODUCT 中使用 SUMIF():

=SUMPRODUCT((D2:D28="yes")*(SUMIF(G2:G16,A2:A28,J2:J16)))

但是您可能使用; 而不是, 作为标准之间的分隔符,所以使用这个:

=SUMPRODUCT((D2:D28="yes")*(SUMIF(G2:G16;A2:A28;J2:J16)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 2019-03-15
    • 2017-12-10
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多