如图,复制数据到空表格B列,然后增加辅助列:
1、c1输入:
=LEN(B1)<>LENB(B1)
然后下拉,通过判断是否中文来对数据进行分类;
2、A1输入:
=SUMPRODUCT(($C$1:C1)*1)
然后下拉形成 同一项目一个序列号这样的操作。
3、e1输入:
=IF(COUNTIF($A:$A,ROW(A1))<COLUMN(A1),"",INDEX($B:$B,MATCH(ROW(A1),$A:$A,0)+COLUMN(A1)-1))
然后右拉若干列(大于a列中同一数据的最大数量),然后下拉若干行完成公式操作。
4、将结果复制,然后到需要的地方使用右键“选择性粘贴”选择 数值,完成操作。
2、
【刚才有点小错误,现在已经更正了一下,答案如下】
你这是姓名和电话吧?
用VBA吧。
如上图所示:
第一步,按ALT+F11打开VBA编辑器
第二步,点击“插入”---插入模块
第三步,双击模块
第四步,在右侧粘贴代码
第五步,点击三角形的那个按钮,可执行代码命令。
代码如下,供复制:
Sub 俺的转置()
Dim rng As Range, ir& '声明变量
For Each rng In Range("A2:A13") '遍历这个区域
If IsNumeric(Left(rng, 1)) = False Or rng.Row = 13 Then '如果首字符不是数字或遍历到最后一行时,那么
If ir > 0 Then '如果ir大于0,那么
rng.Offset(ir - rng.Row).Resize(rng.Row - ir - (rng.Row = 13), 1).Copy '复制
Range("C" & Rows.Count).End(3).Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True '转置粘贴
End If
ir = rng.Row '赋值ir的值为当前姓名所在的行号
End If
Next
MsgBox "处理完毕", , "提示"
End Sub
本回答被网友采纳讨厌的合并单元格会导致你的数据处理变得非常的麻烦啊!!!
如上图:
1、在E1单元格输入数组公式(是数组公式!!!必须CTRL+SHIFT+ENTER这3个键同按结束的!!否则公式无效的!!!)
=IFERROR(INDEX($A$1:$A$12,SMALL(IF(ISERROR(1*$A$1:$B$12),ROW($A$1:$A$12),4^8),ROW(A1))),"")
复制并下拉。
2、在F1单元格输入公式:
=IFERROR(IF(OR(E1="",$E2=INDEX($A$1:$A$12,MATCH($E1,$A$1:$A$12,0)+COLUMN(A$1))),"",INDEX($A$1:$A$12,MATCH($E1,$A$1:$A$12,0)+COLUMN(A$1))),"")
复制并下拉和右拉,至I7单元格,即可…………