雪儿浪漫想吧 关注:291贴子:15,301
  • 5回复贴,共1

【excel——宝贝集合】行列转换、排列及其他

只看楼主收藏回复

问:原数据在A1:An,希望从左到右每5个数一行的向下排列。
答:=IF(COLUMN(A1)>5,"",OFFSET($A$1,ROW(A1)*5+COLUMN(A1)-6,)&"")
=IF(COLUMN(A1)>5,"",INDEX($A:$A,ROW(A1)*5+COLUMN(A1)-5,)&"")
=IF(COLUMN(A1)>5,"",INDIRECT("a"&(COLUMN(A1)+5*ROW(A1)-5)))&""
右拉下拉
问:原数据在A1:An,希望从上到下每5个数一列的向右排列。
答:=IF(ROW(A1)>5,"",OFFSET($A$1,ROW(A1)+COLUMN(A1)*5-6,))&""
=IF(ROW(A1)>5,"",INDEX($A:$A,ROW(A1)+COLUMN(A1)*5-5,))&""
=IF(ROW(A1)>5,"",INDIRECT("a"&(ROW(A1)+5*COLUMN(A1)-5)))&""
下拉右拉
问:原数据在第一行,从A1开始,希望从左到右每5个数一行的向下排列。
答:=IF(COLUMN(A1)>5,"",OFFSET($A$1,,COLUMN(A1)+ROW(A1)*5-6)&"")
=IF(COLUMN(A1)>5,"",INDEX($1:$1,,COLUMN(A1)+ROW(A1)*5-5)&"")
下拉右拉
问:原数据在第一行,从A1开始,希望从上到下每5个数一列的向右排列。
答:=IF(ROW(A1)>5,"",OFFSET($A$1,,COLUMN(A1)*5+ROW(A1)-6)&"")
=IF(ROW(A1)>5,"",INDEX($1:$1,,COLUMN(A1)*5+ROW(A1)-5)&"")
下拉右拉


IP属地:四川1楼2013-05-01 10:12回复
    问:一列数值或人名(大约二百多个)如何做才能以Z字形排列?每行五个,第一行从左到右,第二行从右到左。以此类推。
    答:假如数据在A列
    =IF(COLUMN(A1)>5,"",OFFSET($A$1,IF(MOD(ROW(A1),2),(ROW(A1)-1)*5+COLUMN(A1)-1,ROW(A1)*5-COLUMN(A1)),,))&""
    右拉下拉(dlm925)
    =IF(COLUMN(A1)>5,"",INDEX($A:$A,ROW(A1)*5-COLUMN(A1)+1+ISODD(ROW(A1))*(COLUMN(A1)*2-6),))&""
    右拉下拉(dlsuundeyong)
    =IF(COLUMN(A1)>5,"",INDEX(N(OFFSET($A$1,({1,2,3,4,5;10,9,8,7,6}-1)+INT((ROW(A1)-1)/2)*10,)),MOD(ROW(A1)-1,2)+1,COLUMN(A1)))
    右拉下拉.(无妄之地)这个公式加&""无用,下拉后依然出现0.未细想原因.


    IP属地:四川2楼2013-05-01 10:13
    回复
      问:如何两列转一列,先行后列?
      答:假如数据在A:B列
      =OFFSET(A$1,INT((ROW(A1)-1)/2),MOD(ROW(A1)-1,2))&""
      =OFFSET(A$1,INT(ROW(2:2)/2)-1,MOD(ROW(2:2),2))&""
      =INDEX(A:B,INT((ROW(A1)-1)/2+1),MOD((ROW(A1)-1),2)+1)&""
      =OFFSET(INDIRECT("R"&ROUNDUP(ROW(A1)/2,)&"C1",),,MOD(ROW(A1)-1,2))&""
      下拉
      问:如何三列转一列,先行后列?
      答:假如数据在A:C列
      =OFFSET(A$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3))&""
      =OFFSET(A$1,INT(ROW(3:3)/3)-1,MOD(ROW(3:3),3))&""
      =INDEX(A:C,INT((ROW(A1)-1)/3+1),MOD((ROW(A1)-1),3)+1)&""
      =OFFSET(INDIRECT("R"&ROUNDUP(ROW(A1)/3,)&"C1",),,MOD(ROW(A1)-1,3))&""
      下拉
      问:如何两行转一列,先列后行?
      答:假如数据在一、二行
      =OFFSET(A$1,MOD(ROW(A1)-1,2),INT((ROW(A1)-1)/2))&""
      =OFFSET(A$1,MOD(ROW(2:2),2),INT(ROW(2:2)/2)-1)&""
      =INDEX($1:$2,MOD((ROW(A1)-1),2)+1,INT((ROW(A1)-1)/2+1))&""
      =OFFSET(INDIRECT("R1"&"C"&ROUNDUP(ROW(A1)/2,),),MOD(ROW(A1)-1,2),)&""
      下拉
      问:如何三行转一列,先列后行?
      答:假如数据在一、二、三行
      =OFFSET(A$1,MOD(ROW(A1)-1,3),INT((ROW(A1)-1)/3))&""
      =OFFSET(A$1,MOD(ROW(3:3),3),INT(ROW(3:3)/3)-1)&""
      =INDEX($1:$3,MOD((ROW(A1)-1),3)+1,INT((ROW(A1)-1)/3+1))&""
      =OFFSET(INDIRECT("R1"&"C"&ROUNDUP(ROW(A1)/3,),),MOD(ROW(A1)-1,3),)&""


      IP属地:四川3楼2013-05-01 10:14
      回复
        从A1开始,A1:A3是1,2,3,B1:B3是4,5,6……
        A1=IF(ROW(A1)>3,"",ROW(A1)+(COLUMN(A1)-1)*3) 下拉右拉
        从A1开始,A1:C1是1,2,3,A2:C2是4,5,6……
        A1=IF(COLUMN(A1)>3,"",COLUMN(A1)+(ROW(A1)-1)*3) 下拉右拉


        IP属地:四川4楼2013-05-01 10:16
        回复
          感觉这东西太深奥了 刚刚我试了你这个怎么不行呢?有感叹号


          IP属地:河北6楼2019-04-13 15:43
          收起回复