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
Excel 使用Sumiif()合并单元格的条件和_Excel_Vba - Fatal编程技术网

Excel 使用Sumiif()合并单元格的条件和

Excel 使用Sumiif()合并单元格的条件和,excel,vba,Excel,Vba,场景为2张工作表,表1和表2 表1配置: 表2配置: 问题是: 客户希望在Sheet2(C:C)中输入香蕉的每日数量,并将总数自动添加到Sheet1中的周数。我所面临的问题,我相信是合并的细胞。我成功地删除了合并单元格,并使用此公式(=SUMIF(A:A,E3,'Sheet2!C:C))将周数添加到所有单元格中,但客户希望保留合并单元格,并且仅返回该周的第一个值。我是不是错过了一些简单的东西?我似乎无法理解这一点 这就是我发现的: =SUM(IF(LOOKUP(ROW(Sheet2!$A$2

场景为2张工作表,表1和表2

表1配置:

表2配置:

问题是: 客户希望在Sheet2(C:C)中输入香蕉的每日数量,并将总数自动添加到Sheet1中的周数。我所面临的问题,我相信是合并的细胞。我成功地删除了合并单元格,并使用此公式(=SUMIF(A:A,E3,'Sheet2!C:C))将周数添加到所有单元格中,但客户希望保留合并单元格,并且仅返回该周的第一个值。我是不是错过了一些简单的东西?我似乎无法理解这一点

这就是我发现的:

=SUM(IF(LOOKUP(ROW(Sheet2!$A$2:$A$15),ROW(Sheet2!$A$2:$A$15)/(Sheet2!$A$2:$A$15<>""),Sheet2!$A$2:$A$15)=A2,Sheet2!$C$2:$C$15))
=SUM(如果(查找(行(Sheet2!$A$2:$A$15),行(Sheet2!$A$2:$A$15)/(Sheet2!$A$2:$A$15“),Sheet2!$A$2:$A$15)=A2,Sheet2!$C$2:$C$15))

这是一个数组公式。进入第1页C2。按Ctrl-Shift-Enter键。然后向下复制。

合并单元格是一个坏主意,有几个原因,应该避免

这并不意味着你不能达到你的客户想要的外观。您可以将数字填充到所有未合并的单元格中,然后使用条件格式隐藏七个数字中的六个。在下面的屏幕截图中,A列有一个带有此公式的条件格式

=MOD((ROW()+2)/7,1)
应用的格式为自定义数字格式
(或在白色背景上使用白色字体)。如果数据从不同的行开始,请调整公式

请注意,公式栏清楚地显示所选单元格的值为26


在我看来,这个特定布局的一个重要方面是,一周有7天,你一周中的每一天都在列出。合并单元格由合并区域中左上角的单元格标识。寻找26个返回A2和27个返回A9。如果使用这些行号引用C列,并将范围扩展到7行,则可以对匹配的一周进行求和

在G2中(根据提供的图像)

这两个表中的日期都无关紧要,超出了视觉参考范围


惊人的解决方案!与之相比,OP将能够在整个列上使用常规的
SUMIF
,而不会降低性能,因为数组公式如果应用于整个列,效果会很差。我在考虑一些自定义项,但这在禁用宏的文件中很容易工作,我认为这是一个优势。@ZygD-Ta。是的,避免合并单元格,因此可以使用引用每行或每列的常规公式。这是避免合并单元格的原因之一。格式只是锦上添花。经验丰富的Excel面包师在他们的工具箱中有这一点。我为我的公式付出了很大的努力,现在你来给我一个简单的修正。咕哝..咕哝。。这在这个例子中效果很好,但是如果间距不是相同的而是不同的呢?您的方法是否可以为此进行修改?我不想表现得很难,只是好奇而已,因为我经常遇到这种情况。我同意应该避免这样做,但我有一些老板喜欢这样的外观。@ScottCraner如果每个集合中的行数不规则,可以设置一个条件格式来更改值。如果上一行中的值不同,则显示此单元格的值。嘿,我为延迟表示歉意,谢谢!但事实证明,这个答案对这个场景非常有效,这正是我想要的。谢谢你的帮助,非常感谢!继续努力,小姐!在这种情况下可以正常工作,但在一般情况下不行,例如第28周在A列中再次变为第26周。。。
'volatile OFFSET function
=SUM(OFFSET(INDEX(C:C, MATCH(E2, A:A, 0)), 0, 0, 7, 1))
'non-volatile INDEX function
=SUM(INDEX(C:C, MATCH(E2, A:A, 0)):INDEX(C:C, MATCH(E2, A:A, 0)+6))