不知道目标范围是否可以执行此SumIf?

这是我的代码到目前为止,参考这个问题 ,我正在尝试做什么。

=SUM(IF(LEFT(C$2,4)="/111",SUM(C3,G3))) 

正如你所看到的,我正在定义C2,我的标题的重点,在总和中,我正在定义总和范围。 我现在有这个问题:

  • 如果我不知道标题的确切位置,我该如何处理,但我知道我正在寻找标题的“部分”。 我如何search这个? 用HLookUp? 这是因为这些标题可能以几乎任何顺序放置,因此,我将需要search文本而不是定义它的位置。

例如,我有这个表格:

  +-------------+-------------+-------------+-------------+-------------+ | A | B | C | D | E | +---+-------------+-------------+-------------+-------------+-------------+ | 1 |/650 - Black |/670 - White |/800 - White |/680 - Red |/650 - Black | +---+-------------+-------------+-------------+-------------+-------------+ | 2 | 250 | 400 | 100 | 300 | 125 | +---+-------------+-------------+-------------+-------------+-------------+ 

我想总结一下我所指定的4个字符的LEFT限制标题的数据行,就像我在发布的代码中一样。 这里的问题是,代码更多的是“This.Cell,如果它是你想要的标题,添加东西”,当我想要的东西更像“Where.Cell匹配左有限头,添加他们的东西(水平其他比赛,而不是垂直)我认为索引匹配是我正在寻找,但从我收集的数据将不得不在一个单元格,根据上表,不包含它定义。

我创build了一个单独的问题,因为我相信第一次没有正确地陈述要求,导致了不同的方向和不同的答案。

纯粹的配方是首选,但如果VBA是你想到的,我仍然喜欢读它。

TLDR:在excel中,我定义了几个左边有限的标题,由于过去了/和四位数字而保留了限制,其余的文本可能不同。 我在表格中search这些标题,当find时,我总结它们并将它们放在这个公式的位置上。

我希望这次能够澄清我的要求!

编辑:

所以我只想重申,这个公式的要求是,我不知道我的标题所在的位置,尽pipe我上面写的表。 这个想法是,我将永远有一个/ 650,一个/ 670,或一个/ 680。 号码安排在这一点上甚至都不重要。 我不知道这是否可能,因为我不知道标题的位置,只是它们是什么,我不知道这个单元格会写什么字母,只是它是“单元格”在哪里find标题“。

说我想/ 670和一个/ 680。 公式首先find头部/ 670,并得到像“/ 670在C1上!”的单元格,因此必须添加的数字是C2!“。 继续下一步,/ 680并做同样的事情。 最后,我input公式,输出这两个头= 700的总和。

我正在考虑C#代码,我可能会说,要添加的范围是基于我find的标题的字母,不知道,如果Excel可以做这个less得多作为一个可拖动的公式,这就是为什么我张贴这个问题。

根据你的样品表和你的描述,这是什么SUMPRODUCT是。 总结数组的产品。 这里第一个数组是0或1的数组,其中1是如果标题匹配所需标题0之一,如果不是。 第二个数组是要求和的值的数组。

所以:

 =SUMPRODUCT((LEFT($A$1:$E$1,4)={"/670";"/650";"/680"})*$A$2:$E$2) 

将导致1075 = 250 + 400 + 300 + 125。

所需的标题也可以在单元格范围内给出。 但这必须是一个列范围(1列,多行)。 例如给出如下

  G 1 /650 2 /670 3 /680 

然后:

 =SUMPRODUCT((LEFT($A$1:$E$1,4)=$G$1:$G$3)*$A$2:$E$2) 

我假设你正在寻找的是一个数组公式和你已经使用的数组公式几乎一样:

 {=SUM(IF(LEFT(A1:A3,4)="/670",B1:B3),IF(LEFT(A1:A3,4)="/680",B1:B3))} 

CTRL + SHIFT + ENTER