Excel 从多个列中计算最低值
我有一个表,我需要计算一年的到期时间,但我有两列,我需要计算其中的最低值。什么样的功能会对此有所帮助。这里有一个小例子Excel 从多个列中计算最低值,excel,excel-formula,Excel,Excel Formula,我有一个表,我需要计算一年的到期时间,但我有两列,我需要计算其中的最低值。什么样的功能会对此有所帮助。这里有一个小例子 Name Expiration date Break date Nr.1 31-Aug-2019 28-Feb-2023 Nr 2 18-Oct-2018 Nr 3 30-Sep-2018 21-Jun-2017 Nr. 4 1-Jan-2018 如您所见,这里将有: 2017 2018 2019 2020 1
Name Expiration date Break date
Nr.1 31-Aug-2019 28-Feb-2023
Nr 2 18-Oct-2018
Nr 3 30-Sep-2018 21-Jun-2017
Nr. 4 1-Jan-2018
如您所见,这里将有:
2017 2018 2019 2020
1 2 1 0
您可以使用一个额外的“helper”列,该列在过期日期和中断日期之间取最小值。(考虑中断日期为空的可能性)
那么,您计算每年总数的公式就是在新列上添加一个简单的COUNTIF
辅助列公式的略短版本:
=YEAR(IF(COUNT(B2:C2)=2,MIN(B2:C2),B2+C2))
不同的是,如果截止日期
列中的中断日期
列中填充的单元格旁边的到期日期
列中有一个空白,则返回一年(而不是1900
)
对于实际计数,我会选择一种被认为与SO无关的技术。无辅助列的解决方案 公式:
=SUMPRODUCT(--((($B:$B<$C:$C)+($C:$C=""))*($B:$B<>"")*(YEAR($B:$B)=E$1))+((($C:$C<$B:$B)+($B:$B=""))*($C:$C<>"")*(YEAR($C:$C)=E$1)))
IF(OR(AND(OR(B<C,C=""),B<>"",YEAR(B)=X),AND(OR(C<B,B=""),C<>"",YEAR(C)=X))) THEN TRUE
=SUMPRODUCT(-)($B:$B=SUM(如果)年(如果($B$2:$B$5
注意:这是一个数组公式,您必须将其粘贴到单元格中,然后点击ctrl+shift+enter
,然后您可以将其复制并粘贴到表格中
如果您的数据在A1:C5中,并且您有要在E1:H10中测试的年份,则单元格可以工作。然后,您可以将上述公式粘贴到E2中,然后将ACC粘贴到表格中
数组公式执行以下操作:
第一个IF
语句检查哪个值较低,ColB还是ColC
嵌入的IF
语句然后检查以确保值不是0。如果值是0,则返回另一列,如果值不是0,则返回其自身的非0值
YEAR
函数从每个日期提取年份
执行的最后一个IF
函数(但函数中写入的第一个)针对总和上方的单元格测试年份。如果年份匹配,则返回1,如果为false,则返回0
SUM
语句只对所有真值求和
=SUMPRODUCT(--(((Table1[Expiration Date]<Table1[Break Date])+(Table1[Break Date]=""))*(Table1[Expiration Date]<>"")*(YEAR(Table1[Expiration Date])=$E1))+(((Table1[Break Date]<Table1[Expiration Date])+(Table1[Expiration Date]=""))*(Table1[Break Date]<>"")*(YEAR(Table1[Break Date])=$E1)))