带有通配符和SUM的HLOOKUP多个列

时间:2014-03-09 11:23:13

标签: excel excel-2010

我需要以下方面的帮助:

  1. 我有一个包含一些数据的工作表。第1行是标题,第2行是数据。最后,上面的所有数据都是总数。这个工作表是动态的,即如果第1周有200行数据,那么第2周可能有250或190行数据。
  2. 同样,每周都会更改列。本周我有18个专栏,下周我可以有20个专栏。

    1. 在第1行标题中,我有两个标题“CTAEO1P”和“CTAEO2P”。

    2. 在另一张工作表上,我想添加这两列的“总计”,即CTAEO1P的个别总数= 32.98 + CTAEO2P = 46.25 = 79.23

    3. 我正在使用命名范围并将整个工作表命名为“MT”。范围是整个工作表,所以当下周我从另一个工作表复制数据时,我不必调整范围。

    4. 我使用下面的公式,由本论坛的另一位专家提供:

    5. = HLOOKUP( “CT *”,MT,MATCH(9 ^ 99,INDEX(MT,0,MATCH( “CT *”,INDEX(MT,1,0),0))),0)

      1. 此公式查找以“CT”开头的任何列,然后“匹配(9 ^ 99”和“索引”查找该列中的最后一个数字(在本例中为总数),然后返回该值在这种情况下,这个公式只返回“32.98”,因为这是第一次出现。

      2. 我想我可以在这里使用“Sumproduct”公式但是a)我必须创建多个命名范围,一个用于标题行,另一个用于“Total”行,b)每周我必须调整“总计”行的范围。除非,如果我可以在“SUMPRODUCT”功能中嵌套“匹配(9 ^ 99 ...”部分。

      3. 我想单独使用“MT”范围,并希望添加以“CT”开头的所有列的总数。

      4. 我希望我已经能够更好地解释我的问题,但是,如果您需要任何进一步的信息,请告诉我。

        此致

        塔里克

2 个答案:

答案 0 :(得分:0)

我会忘记MT范围,只要您的数据在A1中开始就可以使用

=SUMPRODUCT(ISNUMBER(SEARCH("CT*";OFFSET(A1;0;0;1;MATCH(9^99;2:2))))*OFFSET(A1;MATCH(9^99;A:A)-1;0;1;MATCH(9^99;2:2)))

根据您的区域设置,您可能需要替换字段分隔符“;”通过“,”

答案 1 :(得分:0)

我认为你可以使用像这样的<{p}}相对简单的SUMPRODUCT解决方案

=SUMPRODUCT((LEFT(INDEX(MT,1,0),2)="CT")*ISNUMBER(MT),MT)/2

SUMPRODUCT将在相关列中包含总计所有值,包括总数,因此将div除以2将确保您获得正确的计数

如果您不喜欢这种方法,那么假设MT的第一列始终有数据,并且每列的总数都在同一行,您可以使用SUMIF这样的

=SUMIF(INDEX(MT,1,0),"CT*",INDEX(MT,MATCH(9^99,INDEX(MT,0,1)),0))

这应该比第一个版本

更有效