就是假如我的数据是竖着的2111112221112212 那我就需要第一列变成2,第二列变成11111 第三列变成222第四列变成111 第5列变成22 第6列变成1 第7列变成2 就是前面的数据分别用列隔开然后后面是带随机数字的
用VBA解决很简单!ALT+F11打开VBA编辑器,插入模块,将以下代码粘贴,按F5运行。
Sub sortnum()
Dim i, j, k, l, m As Integer
Sheet1.Activate
j = Range("a65535").End(xlUp).Row
l = 0
m = 1
For i = 1 To j
k = 2 * m + 1
l = l + 1
Cells(l, k) = Cells(i, 1)
Cells(l, k + 1) = Cells(i, 2)
If Cells(i + 1, 1) <> Cells(i, 1) Then
l = 0
m = m + 1
End If
Next
End Sub
高手啊 谢谢 我希望从结果从F列开始 如何修改呢
追答将公式中的 k = 2 * m + 1改为 k = 2 * m + 4
编了一个公式,E1中输入
=IF((ROW()>INDEX(FREQUENCY(IF($A$1:$A$15=$A$2:$A$16,ROW($1:$15)),IF($A$1:$A$15<>$A$2:$A$16,ROW($1:$15)))+1,MIN(SUMPRODUCT(N($A$1:$A$15<>$A$2:$A$16))+1,COLUMN(B:B)/2)))+(COLUMN(A:A)>(SUMPRODUCT(N($A$1:$A$15<>$A$2:$A$16))+1)*2),"",INDEX($A$1:$B$16,COUNT($C:C)+ROW(),MOD(COLUMN(B:B),2)+1))
同时按下CTRL+SHIFT+回车,输入数组公式,右拉,下拉。
详见附件,其中填充黄色的为公式,C列的D列被当作辅助单元格区域,不得输入数字。
高手 厉害 谢谢你 果断采纳
谢谢 如果是这样的 有办法吗 就是假如我的数据是竖着的小大大大大大小小小大大大小小大小 那我就需要第一列变成小,第二列变成大大大大大第三列变成小小小第四列变成大大大第5列变成小小 第6列变成大 第7列变成小 就是前面的数据分别用列隔开然后后面是带随机数字的
原数据是在C D 列 显示结果在F列之后
那么F1中输入
=IF((ROW()>INDEX(FREQUENCY(IF($C$1:$C$15=$C$2:$C$16,ROW($1:$15)),IF($C$1:$C$15$C$2:$C$16,ROW($1:$15)))+1,MIN(SUMPRODUCT(N($C$1:$C$15$C$2:$C$16))+1,COLUMN(B:B)/2)))+(COLUMN(C:C)>(SUMPRODUCT(N($C$1:$C$15$C$2:$C$16))+1)*2),"",INDEX($C$1:$D$16,SUM(COUNTIF($D:D,{"小","大"}))+ROW(),MOD(COLUMN(D:D),2)+1))
三键齐按下拉右拉
谢谢!
追答不客气,不过D列不可输入小或大,否则会误判
本回答被提问者采纳