如何忽略公式的空白单元格
How To Ignore Blank Cells for a Formula
我正在跟踪我公司的营业时间,我需要每天查看更新的营业时间。我已经按照我想要的方式设置了所有格式,除了我想要两列来显示每个员工当前工作时间的上下小时数。
我现在拥有的是
=(D3-C3)+(F3-E3)+(H3-G3)+(J3-I3)+(L3-K3)+(N3-M3)+(P3-O3)
但它包括所有空单元格(对于尚未工作的天数)作为零。
我想要一个可以让我忽略那些空白单元格直到它们有内容的公式。
我不能只使用 SUMIF >0 函数,因为我需要计算员工错过的小时数(即计划 12 小时,实际工作 0)。
就目前而言,一长串 IF 和 OR 或数组公式:-
=SUM(IF(OR(D3="",C3=""),0,D3-C3),IF(OR(F3="",E3=""),0,F3-E3),IF(OR(H3="",G3=""),0,H3-G3),IF(OR(J3="",I3=""),0,J3-I3),IF(OR(L3="",K3=""),0,L3-K3),IF(OR(N3="",M3=""),0,N3-M3),IF(OR(P3="",O3=""),0,P3-O3))
=SUM(D3:P3*ISEVEN(COLUMN(D3:P3))*(C3:O3<>""))-SUM(C3:O3*ISODD(COLUMN((C3:O3))*(D3:P3<>"")))
第二个必须用CtrlShiftEnter
输入
请注意,它很容易被 insertion/deletion 列打破。
这是@Tom 的另一种方法,尽管它的工作原理相似。但是,这取决于您在当前数据之上添加几行 'HELPER' 行的能力。
我假设第 1 行会交替显示 "PROJECTED" 和 "ACTUAL"。
我假设第 2 行是该周的日期,采用日期格式。因此,A2 将是 2015 年 1 月 1 日,B2 将是 2015 年 2 月 1 日,C3 将是 2015 年 2 月 1 日,或者时间块通常会增加。这里的关键是 PROJECTED 列和 ACTUAL 列都需要其中的日期。
检查该行的预计金额与该行的实际金额之间差异的公式(仅适用于今天之前的日期)是(对于第 3 行并向下复制,并假设数据转到 Z 列):
=SUMIFS(A3:Z3,$A:$Z,"PROJECTED",$A:$Z,"<"&TODAY())-SUMIFS(A3:Z3,$A:$Z,"ACTUAL",$A:$Z,"<"&TODAY())
这会检查该行的 PROJECTED 列的值,其中日期小于今天,并减去该行的 ACTUAL 列的值,其中日期小于今天。
如果您想与 TODAY() 以外的其他内容进行比较,您可以设置一个单元格作为您的 'comparison point'。在该单元格中手动输入您关注的中断期,并将“&TODAY()”替换为“&AA1”[假设您的中断点已输入单元格 AA1]。
我正在跟踪我公司的营业时间,我需要每天查看更新的营业时间。我已经按照我想要的方式设置了所有格式,除了我想要两列来显示每个员工当前工作时间的上下小时数。
我现在拥有的是 =(D3-C3)+(F3-E3)+(H3-G3)+(J3-I3)+(L3-K3)+(N3-M3)+(P3-O3)
但它包括所有空单元格(对于尚未工作的天数)作为零。
我想要一个可以让我忽略那些空白单元格直到它们有内容的公式。
我不能只使用 SUMIF >0 函数,因为我需要计算员工错过的小时数(即计划 12 小时,实际工作 0)。
就目前而言,一长串 IF 和 OR 或数组公式:-
=SUM(IF(OR(D3="",C3=""),0,D3-C3),IF(OR(F3="",E3=""),0,F3-E3),IF(OR(H3="",G3=""),0,H3-G3),IF(OR(J3="",I3=""),0,J3-I3),IF(OR(L3="",K3=""),0,L3-K3),IF(OR(N3="",M3=""),0,N3-M3),IF(OR(P3="",O3=""),0,P3-O3))
=SUM(D3:P3*ISEVEN(COLUMN(D3:P3))*(C3:O3<>""))-SUM(C3:O3*ISODD(COLUMN((C3:O3))*(D3:P3<>"")))
第二个必须用CtrlShiftEnter
输入请注意,它很容易被 insertion/deletion 列打破。
这是@Tom 的另一种方法,尽管它的工作原理相似。但是,这取决于您在当前数据之上添加几行 'HELPER' 行的能力。
我假设第 1 行会交替显示 "PROJECTED" 和 "ACTUAL"。 我假设第 2 行是该周的日期,采用日期格式。因此,A2 将是 2015 年 1 月 1 日,B2 将是 2015 年 2 月 1 日,C3 将是 2015 年 2 月 1 日,或者时间块通常会增加。这里的关键是 PROJECTED 列和 ACTUAL 列都需要其中的日期。
检查该行的预计金额与该行的实际金额之间差异的公式(仅适用于今天之前的日期)是(对于第 3 行并向下复制,并假设数据转到 Z 列):
=SUMIFS(A3:Z3,$A:$Z,"PROJECTED",$A:$Z,"<"&TODAY())-SUMIFS(A3:Z3,$A:$Z,"ACTUAL",$A:$Z,"<"&TODAY())
这会检查该行的 PROJECTED 列的值,其中日期小于今天,并减去该行的 ACTUAL 列的值,其中日期小于今天。
如果您想与 TODAY() 以外的其他内容进行比较,您可以设置一个单元格作为您的 'comparison point'。在该单元格中手动输入您关注的中断期,并将“&TODAY()”替换为“&AA1”[假设您的中断点已输入单元格 AA1]。