excel中基于条件的最大列总和

excel中基于条件的最大列总和,excel,Excel,因此,我有一个结构如下的大型数据库: A B C D Year,Month Sales1 Sales 2 Sales 3 2013,Jan 100 220 50 2013,Feb 800 70 100 2013,Mar 200 300 10 等等,直到2016年 我想要的是在2013年、2014年等年对B、C和D列的

因此,我有一个结构如下的大型数据库:

   A        B          C         D    
Year,Month  Sales1     Sales 2    Sales 3
2013,Jan    100        220        50
2013,Feb    800         70       100
2013,Mar    200        300        10
等等,直到2016年

我想要的是在2013年、2014年等年对B、C和D列的最大值求和。 在这种情况下,答案应该是:800+300+100

换句话说,我希望excel首先检查年份是否为2013年,然后计算该年度所有单个列的最大值,然后将这些最大值相加

目前我使用的是MAX(如果(A:A=2013,C:C+D:D+E:E+F:F+G:G+H:H+J:J+K:K+L:L)),但它没有起作用。有什么想法吗?

{=MAX(如果年(A:A)=2013,B:B))+MAX(如果年(A:A)=2013,C:C))+MAX(如果年(A:A)=2013,D:D))+MAX(如果年(A:A)=2013,E:E))+MAX(如果年(A:A)=2013,F:F))+MAX(如果年(A:A)=2013,G))

每个列都需要一个单独的max(if()),并且需要通过按Ctrl-Shift-Enter键将其全部设置为数组公式

您还需要输入
YEAR(A:A)
,就像我在这里做的那样,或者确保您的A列只有值(而不是日期),例如2013。这是因为,正如XOR LX所提到的,日期格式与2013年不同。例如,2013年1月1日是41275个

{=MAX(如果年(A:A)=2013,B:B))+MAX(如果年(A:A)=2013,C:C))+MAX(如果年(A:A)=2013,D:D))+MAX(如果年(A:A)=2013,E:E))+MAX(如果年(A:A)=2013,F:F))+MAX(如果年(A:A)=2013,G))

每个列都需要一个单独的max(if()),并且需要通过按Ctrl-Shift-Enter键将其全部设置为数组公式


您还需要输入
YEAR(A:A)
,就像我在这里做的那样,或者确保您的A列只有值(而不是日期),例如2013。这是因为,正如XOR LX所提到的,日期格式与2013年不同。例如,2013年1月1日是41275

您的公式给出了MAX(如果(A:A=2013…但从您的表格中,A列似乎不包含年份,而是包含年、月。您能澄清一下吗?我将年份拆分为一个新列,因此我使用了仅包含年份值的列。您的公式给出了MAX(如果(A:A=2013…但从您的表中看,A列似乎不包含年份,而是年份、月份。您能澄清一下吗?我将年份拆分为一个新列,因此我使用的列仅包含年份值。在数组公式中使用整列引用根本不是一个好主意。您的公式被迫计算超过1200万如果速度是个问题,那么应该指定范围,即
A1:A1000
而不是
a:a
数组公式的好处是,由于对每行使用单个公式而不是不同的公式,因此文件大小更小。问题是该数据库很可能将变得更大。因此我不想继续输入结束行号。不过,我可能只传递最后一个有效行来解决这个问题。在这种情况下,最好在数组公式中使用整列引用,这根本不是一个好主意。您的公式被迫计算超过1200万个单元格,这对于单个公式。如果速度是一个问题,那么应该指定范围,即
A1:A1000
而不是
a:a
数组公式的好处是文件大小更小,因为对每行使用单个公式而不是不同的公式。问题是这个数据库很可能会变得更大。所以我不这么认为希望继续输入结束行号。我可能只需要传递最后一个有效行来解决这个问题。在这种情况下,您最好使用