我有下表:
count = 0
for a in range(1, int((e - N - M - P) / T))
for b in range(1, int((e - T*a - M - P) / N))
for c in range(1, int((e - T*a - N*b - P) / M))
count = count + int((e - T*a - N*b - M*c) / P)
我想要以下
ID Description
1 name1
2 name2
3 name3
4 name4
你特别提出建议吗? 已经尝试了一些其他的转置方法,但我无法一次管理两行。
感谢您的帮助。
答案 0 :(得分:3)
如果您愿意使用配方,那么以下内容可能会有所帮助。
在Cell D2
=INDEX($A$2:$B$5,1+INT((ROW(A1)-1)/COLUMNS($A$2:$B$5)),MOD(ROW(A1)-1+COLUMNS($A$2:$B$5),COLUMNS($A$2:$B$5))+1)
根据需要拖动/复制。见图片以供参考。
数据位于G17:H20
,公式位于I10
数据位于G18:H21
,公式位于I12
答案 1 :(得分:1)
您可以使用基于OFFSET的公式
=OFFSET($A$1,INT((ROW(A1)-1)/2),MOD(ROW(A1)-1,2))
答案 2 :(得分:1)
使用 VBA宏,您可以这样做:
Sub Transpose1()
Worksheets("Sheet1").Select
Range("C1").Value = "ID+Name"
'Get Worksheet
Dim ws As Worksheet: Set ws = Worksheets("Sheet1")
'Find last row
Dim LastRow As Long: LastRow = ws.UsedRange.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Dim i As Long, j As Long, RowCounter As Long: RowCounter = 2
Dim DestCol As Long
DestCol = 3
With ws
'loop through all rows
For i = 2 To LastRow
'set value in row=1,col=3, with value from row=i,col=1
.Cells(RowCounter, DestCol) = ws.Cells(i, 1)
RowCounter = RowCounter + 1
'set value in row=2,col=3, with value from row=i,col=2
.Cells(RowCounter, DestCol) = ws.Cells(i, 2)
RowCounter = RowCounter + 1
Next i
End With
End Sub
假设您在工作表的列 A 和上的 Sheet1 上有2列 ID ,描述 B 分别。此宏将在 C 列中输出所需的格式。请查看代码中的注释以便更好地理解。