在数量上,我怎样才能转置这种格式:
一个 a1 b b1 c c1 d d1 ee1
如下所示的单列?
一个 a1 b b1 C c1 d d1
在数量上,我怎样才能转置这种格式:
一个 a1 b b1 c c1 d d1 ee1
如下所示的单列?
一个 a1 b b1 C c1 d d1
有很多方法可以实现您想要的。最简单的描述之一是,假设您的数据在 ColumnA:B 中,使用公式C1
并复制下来;
=IF(ISODD(MOD(ROW(),2)),INDIRECT(CHAR(COLUMN()+61)&(ROW()+1)/2), 间接(CHAR(COLUMN()+62)&(ROW()/2)))
但是我喜欢的一种技术几乎不需要公式(除了 Excel 在按钮后面提供的)。小计 A:B(A:B 需要标签,即使是空白)对于 ColA、计数、将小计添加到 ColA 和数据下方的摘要中的每个更改。{如果 ColA 有连续的重复值,这会添加行并且会下降 - Count 应该始终是1
)。
过滤 A:C 并选择 B = 1
。根据需要B3
输入=C2
并复制下来。取消过滤,复制 ColB 并将特殊值粘贴到顶部。删除小计并删除 {new} ColA 以保持整洁。{现在也可以删除 ColB。}
PS如果您的数据在您的帖子中似乎显示的交替行中,这会更容易 - 在我编辑它之前!
您也可以使用 VBA 执行此操作,而无需 Excel 选择或激活任何内容。它现在只被编码为在活动工作表上工作,但很容易让它在任何未被主动选择的工作表上工作。
Sub combineColumns()
Dim sFirstCol As String
Dim sSecondCol As String
sFirstCol = "A"
sSecondCol = "B"
Dim values() As String
Dim i As Integer
Dim t As Integer
Dim iFirstRow As Integer
Dim iSecondRow As Integer
iFirstRow = Range(sFirstCol & 1).End(xlDown).Row
iSecondRow = Range(sSecondCol & 1).End(xlDown).Row
ReDim values(iSecondRow - 1)
For i = 0 To iFirstRow - 1
values(i) = Range(sSecondCol & i + 1).Value
Next i
t = 0
For i = 0 To iFirstRow * 2 - 1 Step 2
Range(sFirstCol & i + 2).Insert
Range(sFirstCol & i + 2).Value = values(t)
t = t + 1
Next i
Range(sSecondCol & 1 & ":" & sSecondCol & iSecondRow * 2).ClearContents
End Sub