请问EXCEL竖排转横排公式怎么编

你好,上次很感谢你的帮忙,今次又遇到困难,第一个就想起你,希望你能再抽时间帮一帮忙。谢谢。

图一

图二
要求如图一(Sheet1),把A,B两列坚排的数据转置成图二(Sheet2)的横排的1,2行数据。
要求一,逢满足8个数后自动隔行换行继续排列。
要求二,姓名下面的编号100到199的,200到299的,300到399的,在规定的每一段编号内不足8组数的,也要求自动隔行换行继续排列。求公式,谢谢。

只满足第一个条件的话,用公式还可以办到,加上第二个条件,我公式搞不定了,不知道用宏可以不可以

sub zz()
    dim arr,brr(),tmp
    arr=[a1].currentregion
    redim brr(1 to ubound(arr),1 to 8)
    tmp=int(arr(i,1)/100)*100+100 
    j=1:k=1 
    for i=1 to ubound(arr,1)
        if arr(i,2)>=tmp then
            tmp=tmp+100
            j=j+3
        end if
        if k=8 then 
            k=1
            j=j+3   
        end if 
        brr(j,k)=arr(i,1)
        brr(j+1,k)=arr(i,2)
    next
    with worksheets(2)
        .[a1].resize(j+1,8)=brr
    end with         
end sub

结果在表2

有不明白的地方请追问

追问

本人对公式只不过是一知半解,对用宏,完全不懂。或者你可否教教我如何使用这段话。

追答

右键工作表标签》查看代码》复制代码到弹出窗口中》关闭弹出窗口回到Excel中》宏》运行宏~

 

注意备份源文件,通过宏所进行的操作是无法被撤销的。

 

见附件,上面的代码有误,抱歉,有不明白请继续追问。

在表1中运行宏zz,结果会出现在表2中

追问

你好,上面的例子里,我把人数复进出后,60行后的人名就不能按编号分组了。还是密密麻麻8组数。还有,我的工作溥里是有多个表的,当运行宏ZZ后,如何把结果显示在我指定的那个表里,在那里更改。请指教,谢谢。

追答

额,只要你源数据是按你截图中的格式,AB列,并且中间无空行的格式,代码就不可能出错。

然后“还是密密麻麻8组数”指的是什么意思?我不太明白,你的要求写的就是最多8个数一行啊?

刚才我测试了下,数据复制到120个,见下图,不具备排序功能。

然后,指定表是可以的,你给出指定表的名称,我在每次运行宏前,都会把这个表清空,在把结果写入,或者,不清空,把结果写入到后方?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-14
把问题作为内容(邮件主题一定要包含“excel”,本人以此为依据辨别非垃圾邮件,以免误删)、excel样表文件(把现状和目标效果表示出来)作为附件发来看下 [email protected]
相似回答