Excel问题:横向纵向查找,重新整理数据

如题所述

一个很复杂的内容,貌似被简单化了。我做了一个,楼主看看是不是满意

如图源数据:


以上假设数据终止于地20行,楼主需要自行调整公式中的终止行号


Sheet2数据安排如下,B1定义公司名,第三行开始公式如下:

A3

=IF(B3="","",OFFSET(Sheet1!$A$1,LOOKUP(SMALL(IF(Sheet1!B$4:B$20=$B$1,ROW(A$4:A$20),4^8),ROW(A1)),(1/(Sheet1!A$4:A$20<>""))*ROW(A$4:A$20))-1,))

数组公式,Ctrl+Shift+Enter三键结束

B3

=IF(ROW(A1)>COUNTIF(Sheet1!B:B,$B$1),"",$B$1)

C3

=IF($B3="","",VLOOKUP($B$1,INDIRECT("Sheet1!B"&MATCH($A3,Sheet1!$A:$A,0)&":"&CHAR(COLUMN()+64)&"20"),COLUMN(B1),0))

把C3右拉,然后ABCDEFG一起下拉

效果如图:

当B1填入“E1”时:


当B1填入“E3”时:


当然,楼主也可以复制Sheet2到新的表,然后把B1定义为需要的公司


附件可参考,满意请采纳


追问

万分感谢,能否用Index函数简化呢?

追答

index函数也简化不了什么的呀,但是会被限制在区域中,
对于A3而言,使用Offset是因为它的偏移量是可正可负可零的,比较灵活;
对于C3~F3而言,Vlookup的结构合适而且相对简单。如果用index+match就会更加复杂了。

不知道你采纳的回答对你有什么帮助?
你的问题,一个Vlookup能够解决?那不妨让大分享一下!

感觉楼主很不厚道

追问

追答

不用追问我啊,我已经很详细很费精力地回答并解决了你初始的问题,而你却并不认可,请楼主追问你认可的答案呗

追问

这里面的原理我还是不明白呀,求大师详解

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-28
用SUMIFS或SUMPRODUCT函数,这2个都可以多条件查找并返回你需要的值本回答被网友采纳
第2个回答  2014-07-28
用Vlookup公式本回答被提问者采纳