Excel 如何提取数据到指定的行?

如图,1图是数据,2图是结果。就是将姓名和数值按顺序从横着的排列成竖着的格式。

假设数据源在Sheet5,结果在Sheet6,在Sheet6的C2中输入公式:

=INDIRECT("Sheet5!"&TEXT(MAX(IF(A2&B2=Sheet5!A$2:A$4&Sheet5!$B$2:$G$4,ROW($2:$4)*100+COLUMN($B:$G),0))+1,"r0c00"),)

同时按Ctrl+Shift+Enter三键输入数组公式,下拉


上面的公式,即使不同地区有重名也能得到正确的结果

追问

按你说的我试了一下,不行呀。是直接在Sheet6的C2中输入公式吗?

追答

我的截图中,右下角的是Sheet6中输入公式得到结果,应该表达得很清楚了。

你说的“不行”是怎样个不行法?有没有按照 我说的:“同时按Ctrl+Shift+Enter三键输入数组公式”?

追问

像这样,你看看哪里错了?

追答

你输入的公式里就有错误值——#REF!,怎么能够得到正确结果呢?
如果你的另一个工作表(这里是Sheet6)要根据数据源(这里是Sheet5)完全自动得到,那就复杂得多了。比较好的方法是用数据工具对数据源进行清洗,整理后得到,如Power Query。这可不是三言两语能说得清的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-25
这个比较麻烦,可以用VBA实现,处理一下
第2个回答  2020-01-02
这个用VBA实现比较好。用公式的话,会比较麻烦的。可以做到,而且必须预设足够的位置。否则是不能完整统计的。数组公式的数据量大的时候,可能会导致运算缓慢。
而VBA则会方便很多。可私信我,有原表就好做。
第3个回答  2019-11-26
=INDIRECT("Sheet5!"&TEXT(MAX(IF(A2&B2=Sheet5!A$2:A$4&Sheet5!$B$2:$G$4,ROW($2:$4)*100+COLUMN($B:$G),0))+1,"r0c00"),)
相似回答