提供十条公式,任选一条即可,公式中的ROW(1:4)是对应要统计区域的行数,不算表头,问题中是G4:J7区域共四行,如果增加至10行的,只需把公式中的ROW(1:4)改为ROW(1:10)。
在D5输入以下公式中的任意一条,推荐用公式一,数组公式,输入完成后不要直接回车,要按三键 CTRL+SHIFT+回车 结束。
公式一:(推荐)
=IF(COUNTIF(G4:I7,D3),INDEX(J:J,MAX((G4:I7=D3)*ROW(1:4)+3)),"")
如果D3的值在表格中是唯一的,不会重复的,公式一可以改为普通公式,这样在数据量大时,运行速度相对来说会快点,输入完成后直接回车,无需再按那三键。
=IF(COUNTIF(G4:I7,D3),INDEX(J:J,SUMPRODUCT((G4:I7=D3)*ROW(1:4))+3),"")
公式二:
=IF(COUNTIF(G4:I7,D3),OFFSET(J1,MAX((G4:I7=D3)*ROW(1:4))+2,),"")
公式三:
=IF(COUNTIF(G4:I7,D3),INDIRECT("J"&MAX((G4:I7=D3)*ROW(1:4))+3),"")
公式四:
=IF(COUNTIF(G4:I7,D3),INDIRECT("R"&MAX((G4:I7=D3)*ROW(1:4))+3&"C10",),"")
公式五:
=IF(COUNTIF(G4:I7,D3),INDIRECT(ADDRESS(MAX((G4:I7=D3)*ROW(1:4))+3,10)),"")
公式六:
=IF(COUNTIF(G4:I7,D3),SUMIF(OFFSET(F4,,MAX((G4:I7=D3)*COLUMN(A:C)),4),D3,J4),"")
公式七:
=IF(COUNTIF(G4:I7,D3),SUM((OFFSET(F4,,MAX((G4:I7=D3)*COLUMN(A:C)),4)=D3)*J4:J7),"")
公式八:(此为普通公式,输入完成直接回车即可,无需按三键)
=IF(COUNTIF(G4:I7,D3),LOOKUP(1,0/(OFFSET(F4,,MAX((G4:I7=D3)*COLUMN(A:C)),4)=D3),J4:J7),"")
公式九:(此为普通公式,输入完成直接回车即可,无需按三键)
=IF(COUNTIF(G4:I7,D3),SUMPRODUCT((OFFSET(F4,,MAX((G4:I7=D3)*COLUMN(A:C)),4)=D3)*J4:J7),"")
公式十:
=IF(COUNTIF(G4:I7,D3),VLOOKUP(D3,IF({1,0},OFFSET(F4,,MAX((G4:I7=D3)*COLUMN(A:C)),4),J4:J7),2,),"")
以上所有公式都已增加了当D3为空或是D3的值不存在表格中时,公式返回空白值的处理。
我把文件传上来,请点击这回答右下角绿色的“点击下载”按钮,下载文件看看效果。
不明白,这个用VLOOKUP函数就可以解决,不知道是不是我理解不好,请指正。
=IF(COUNTIF($G$3:$G$7,$D3),VLOOKUP($D3,$G$3:$J$7,4,0),)
想要缩短公式长度,还有一个方法就是定义公式,可以有效减少公式长度
D5中输入
=IF(OR(G3=D1,H3=D1,I3=D1),J3,"")
用vba最简单!!!