Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 是否可以在不知道目标范围的情况下执行此SumIf?_Vba_Excel_Excel Formula_Excel 2010 - Fatal编程技术网

Vba 是否可以在不知道目标范围的情况下执行此SumIf?

Vba 是否可以在不知道目标范围的情况下执行此SumIf?,vba,excel,excel-formula,excel-2010,Vba,Excel,Excel Formula,Excel 2010,这是到目前为止我的代码,请参考此代码以了解我正在尝试执行的操作 =SUM(IF(LEFT(C$2,4)="/111",SUM(C3,G3))) 如您所见,我定义了C2,即标题的点,在Sum中,我定义了Sum范围。我现在有一个问题: 如果我不知道标题的确切位置,但我 知道我在寻找标题的“部分”。我如何搜索 这和一个哈卢库普?这是因为这些标题几乎可以按任何顺序放置,因此,我需要搜索文本,而不是定义其位置 例如,我有以下表格: +-------------+-------------+

这是到目前为止我的代码,请参考此代码以了解我正在尝试执行的操作

 =SUM(IF(LEFT(C$2,4)="/111",SUM(C3,G3)))
如您所见,我定义了C2,即标题的点,在Sum中,我定义了Sum范围。我现在有一个问题:

  • 如果我不知道标题的确切位置,但我 知道我在寻找标题的“部分”。我如何搜索 这和一个哈卢库普?这是因为这些标题几乎可以按任何顺序放置,因此,我需要搜索文本,而不是定义其位置
例如,我有以下表格:

    +-------------+-------------+-------------+-------------+-------------+
    |      A      |      B      |      C      |      D      |      E      |
+---+-------------+-------------+-------------+-------------+-------------+
| 1 |/650 - Black |/670 - White |/800 - White |/680 - Red   |/650 - Black |
+---+-------------+-------------+-------------+-------------+-------------+
| 2 |     250     |     400     |     100     |     300     |     125     |
+---+-------------+-------------+-------------+-------------+-------------+
我想总结一下我指定了4个字符的左限制标题的数据行,就像我发布的代码一样。这里的问题是,代码更像是一个“This.Cell,如果它是您想要的标题,请添加内容”当我想要更像“Where.Cell匹配左有限标题时,请添加它们的内容(通过其他匹配水平,而不是垂直)我认为索引匹配是我要寻找的,但从我收集的数据来看,数据必须在单元格上定义,根据上表,单元格中不包含数据

我创建了一个单独的问题,因为我认为第一次没有正确说明要求,导致了不同的方向和不同的答案

纯公式是首选,但如果VBA是你想到的,我还是想读一下

TLDR:在excel中,我定义了几个左限制标题,左限制是因为超过了/和四位数字,文本的其余部分可能会不同。我在工作表中搜索这些标题,找到后,我将它们相加,并将它们放在这个公式的点上

我希望这次我能更清楚地说明我的要求

编辑:

所以我只想重申,这个公式的要求是,尽管我写了上面的表格,但我不知道我的标题在哪里。我的想法是,我将始终使用a/650、a/670或a/680。在这一点上,数字排列甚至不重要。我不知道这是否可行,因为,因为我不知道是什么时候标题是什么,只是它们是什么,我不知道单元格将在哪个字母上,只是它是“找到标题的单元格”

假设I want/670和a/680。公式首先找到标题/670,然后得到它的单元格空间,就像“/670在C1上一样!因此,必须添加的数字是C2!“。继续下一步,/680并执行相同的操作。最后,我在公式上按enter键,得出这两个标题的总和=700


我考虑的是C代码,我可能会说要添加的范围是基于我找到的标题字母,不知道excel是否可以作为一个可拖动的公式做得更少,这就是我发布这个问题的原因。

根据您的示例表和您的描述,这就是
SUMPRODUCT
的用途数组的UCT。这里第一个数组是一个0或1的数组,如果标头与所需标头之一匹配,则为1。如果标头与所需标头不匹配,则为0。第二个数组是要求和的值的数组

因此:

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

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

    G
1 /650
2 /670
3 /680
然后:


我假设,您要查找的是一个数组公式,它与您已经使用的几乎相同:

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

点击
CTRL
+
SHIFT
+
ENTER

请显示可能的最小完整输入数据和相应的所需输出您可以尝试使用SumIf公式:
=SUMIFS(A2:G2,条件范围,=/111”)
,但需要您使用
=Left()
值。当我重新阅读问题时,我给出的答案不合适。因此我将其删除。请澄清给定表格中标题以“/670”开头的结果是什么?是否:如果任何标题以“/670”开头,则将整行相加“?@AxelRichter,哦,不。更多的变量被抛到方程中。比如,如果我要包括/670、/650、/680,我要添加这些的行值。我不知道的是如何处理这样一个事实:我不知道这些头在哪里,所以我不知道如何对数据所在的单元格进行命名。我将用一个例子更新OP,其中您“将包括/670、/650、/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))}