假设上图为Sheet1,下图为Sheet2
在SHEET2的A1中输入或复制粘贴下列公式=INDEX(Sheet1!B:B,SMALL(IF(MATCH(Sheet1!$B$1:$B$10,Sheet1!$B$1:$B$10,)=ROW($1:$10),ROW($1:$10),4^8),ROW(A1)))&""
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充到A10
在SHEET2的B2中输入或复制粘贴下列公式=INDEX(Sheet1!$C:$C,SMALL(IF(Sheet1!$B$1:$B$10=Sheet2!$A2,ROW($1:$10),4^8),COLUMN(A2)))&""
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充,右拉填充
F1:公式用不了,E1公式可以用 麻烦看看
追答第二个公式有误,应为
=INDEX($C:$C,SMALL(IF($B$2:$B$10=$E1,ROW($2:$10),4^8),COLUMN(A1)))
怎么编写?求解
追答这个代码比较长.你可以这样进入编写状态.再写代码.或者录制新宏.
[菜单栏][工具][宏]
进入到这里后有多种选择[录制新宏] 这样也可以达到,你就按你想的去操作.可以编写代码重组数据,也可以直接操作.
[VISUAL BASIC]如果你选择这一项.就进入了VBA的代码编写区域.在这里可以编写代码来实现这个功能.
原理就是上面说的,穷举你刚才说的这个表格,比如说 穷举 B列的数据.获取 [张三]这个姓名,然后是 将这个[张三]右侧的数据获取 比如说你刚才这一段数据是C2 C3,这样将这二个数据甚至更多的数据 放在你存放新排列的SHEET表上.进行重新排列.只要获取了数据,那你想如何排列都是可以的.