将sumif语句,stringsearch和可能的查找组合成单个公式

我有一个excel文件,几张。 一张表格“程序数据”包含所有的手册条目。 这个数据的一个非常基本的近似如下所示:

ID Type Route RevACT Aug 2013 RevBGT Aug 2014 ... 250 New CCS $1000.00 $500.00 310 Deep RCS $750.00 $150.00 015 Exist CCS $250.00 $1000.00 

我们正在做的是分两步,我希望能凝聚到一步。

现在我们使用sumif语句将这张表中所需的信息从第一张表格(名为New&Exst Dasbrd-Bckup)中提取出来:

 =SUMIFS('Program Data'!CC:CC,'Program Data'!$M:$M,$A74,'Program Data'!$E:$E,'Program Data'!$E$2)+SUMIFS('Program Data'!CC:CC,'Program Data'!$M:$M,$A74,'Program Data'!$E:$E,'Program Data'!$E$3) 

此公式查找与A74(即Route = CCS)中的标准相匹配的值,然后将Type为“New”(E2)或“Existing”(E3)的Aug Revenue(在CC中find) 。

一旦我们有这些数据编译了几个月,我们有一个仪表板,使我们能够创build图表。 有一个下拉菜单来select你想要的月份(1月 – 12月),并使用第二张表格填充单元格,并根据下拉select使用以下公式:

 =HLOOKUP($A$11,'New & Exst Dshbrd-Bckup'!$B$74:$M$77,3,FALSE) 

其中A11是下拉选项(1月 – 8月),范围是第一组值的位置,3是包含以前公式值的行。 我真的希望我们可以用一个公式完成这个,并跳过中间表。

TL DR; 我需要一个formala,一旦从下拉菜单(A11)中select一个月份,就会查找该string(8月,10月等)以及另一个string,我在列中指定(比如说“2013”​​)标题(1:1)。 一旦它find这两个string的列,我希望它在那个列上加上所有具有指定路由的值(如A74 = CCS中所述)并且也具有正确的Type值(在E2和E3中给出 – – 新和存在)并返回该值

我尝试了一些不同的东西,但是恐怕这有点超出了我的能力。 任何帮助真诚赞赏。

首先,您可以使用这样的单个SUMIFS来简化您的第一个公式

=SUMPRODUCT(SUMIFS('Program Data'!CC:CC,'Program Data'!$M:$M,$A74,'Program Data'!$E:$E,'Program Data'!$E$2:$E$3))

现在,您只需要根据月份和年份将列进行dynamic求和,因此假设您的求和列位于A和CZ之间,您可以在该部分使用INDEX/MATCH函数

=SUMPRODUCT(SUMIFS(INDEX('Program Data'!A:CZ,0,MATCH("*"&A11&" "&A12&"*",A1:CZ1,0)),'Program Data'!$M:$M,$A74,'Program Data'!$E:$E,'Program Data'!$E$2:$E$3))

A12包含年份

注意: SUMPRODUCT仅用于添加2个值 – 因为其中一个SUMIFS条件是2单元格范围 – “程序数据”!$ E $ 2:$ E $ 3 – SUMIFS将返回一个两元素数组。 公式的大部分努力工作都是由SUMIFS完成的。 这是故意的,因为SUMIFS比任何其他多条件求和function更快

看起来巴里打我,这是我的。 我认为使用INDEX / MATCH Barries公式更好,但SUMIF是不必要的。

  Col DEFGHIJ Row 9 ID Type Route RevACT Aug 2013 RevBGT Aug 2014 RevACT Sept 2013 RevBGT Sept 2014 10 250 New CCS 1000 500 500 250 11 310 Deep RCS 750 150 650 1500 12 15 Exist CCS 250 1000 350 2000 13 14 Route RCS Answer 650 15 Month RevACT Sept 2013 Formula =SUMPRODUCT(--(F10:F12=$E$14),INDIRECT(VLOOKUP($E$15,{"RevACT Aug 2013","G";"RevBGT Aug 2014","H";"RevACT Sept 2013","I";"RevBGT Sept 2014","J"},2,0)&"10:"&VLOOKUP($E$15,{"RevACT Aug 2013","G";"RevBGT Aug 2014","H";"RevACT Sept 2013","I";"RevBGT Sept 2014","J"},2,0)&"12")) 

注意SUMPRODUCT的第一个参数的双减号和圆括号,这将乘法的TRUE / FALSE求值转换为1/0。

此外,VLOOKUP中的数组参数的语法可能会有所不同,具体取决于您的系统分隔符等。

解决这个问题的另一种方法是去海峡数组公式,尽pipe结果基本上与给出的解决scheme相同。

问候,