求EXCEL公式
你要的公式,
1、自动计算总重量,U2填入下面公式,向下填充即可。
=SUMIF($A:$A,N2,$H:$H)*O2+SUMIF($A:$A,P2,$H:$H)*Q2+SUMIF($A:$A,R2,$H:$H)*S2
2、领用的数量,K2填入下面公式,向下填充即可。
=IF((SUMIF(N:N,A2,O:O)+SUMIF(P:P,A2,Q:Q)+SUMIF(R:R,A2,S:S))=D2,"领用完",IF((SUMIF(N:N,A2,O:O)+SUMIF(P:P,A2,Q:Q)+SUMIF(R:R,A2,S:S))>D2,"超量领用",SUMIF(N:N,A2,O:O)+SUMIF(P:P,A2,Q:Q)+SUMIF(R:R,A2,S:S)))
3、在右侧空白区域选择一列建立辅助列,我这里选用AA列,填入下面公式,Ctrl+Shift+Enter结束输入,然后向下填充,填充行数与A列数量一致。
=IFERROR(INDEX(A:A,SMALL(IF($D$2:$D$6>$K$2:$K$6,ROW($K$2:$K$6),""),ROW(A1))),"")
然后选择你要设置下来菜单的单元格,数据,有效性,
设置,允许栏选择来自序列,来源选择你做好的辅助列。确定即可
公式:
K2:
=(SUMPRODUCT(($N$1:$N$1000=$A2)*1,$O$1:$O$1000)+SUMPRODUCT(($P$1:$P$1000=$A2)*1,$Q$1:$Q$1000)+SUMPRODUCT(($R$1:$R$1000=$A2)*1,$S$1:$S$1000))*H2
U2:
=IFERROR(INDEX($H$1:$H$1000,MATCH(N2,$A$1:$A$1000,0),)*O2+INDEX($H$1:$H$1000,MATCH(P2,$A$1:$A$1000,0),)*Q2+INDEX($H$1:$H$1000,MATCH(R2,$A$1:$A$1000,0),)*S2,0)
L2:(辅助列,作为剩余参考,分开来公式简单点)
=IF(G2-K2=0,"领用完",IF(G2-K2<0,"超量领用",K2))
上述公式下拉填充
有效性设置:
首先搞个辅助列,比如W列,用来盛放数据源
w2=IFERROR(INDEX(A$1:A$1000,SMALL(IF(($L$1:$L$1000<9^9)*($L$1:$L$1000<>""),ROW($1:$1000),4^8),ROW(A1)),),"")
数组公式,三键完成输入,拖动公式下拉,生成有效性的数据源。
然后在相应的位置创建数据有效性即可,有效性数据的范围选择大一些,反正空值是可以过滤的。
以上都是笨办法,算是抛转引玉,仅供参考。
第二、第三个问题数据结构不全啊,你想一下是不是应该与日期挂钩的,随着右边的数据行增加而变化,所以需要有一个日期配套才可以做吧!