R 如何使用excel中的宏将两列合并为一列,并将每个条目合并到新行中?

R 如何使用excel中的宏将两列合并为一列,并将每个条目合并到新行中?,r,excel,vba,R,Excel,Vba,我在excel中有以下格式的数据: |4 | 5 | |8 | 3 | |6 | 2| 我希望输出形式为: 4 5 8 3 6 2 如何在excel中使用宏来实现这一点?或者可以使用R中的dataframe来完成吗?在另一个单元格中,使用列A和B中的数据输入: =OFFSET($A$1,ROUNDUP(ROWS($1:1)/2,0)-1,MOD(ROWS($1:1)-1,2)) 并抄写: 注: 任何矩形数据块都可以用类似的公式映射到单个列中。如果您正在专门寻找宏,以下是一些快速VBA代码以帮

我在excel中有以下格式的数据:
|4 | 5 |
|8 | 3 |
|6 | 2|

我希望输出形式为:
4
5
8
3
6
2

如何在excel中使用宏来实现这一点?或者可以使用R中的dataframe来完成吗?

在另一个单元格中,使用列AB中的数据输入:

=OFFSET($A$1,ROUNDUP(ROWS($1:1)/2,0)-1,MOD(ROWS($1:1)-1,2))
并抄写:

注:


任何矩形数据块都可以用类似的公式映射到单个列中。

如果您正在专门寻找宏,以下是一些快速VBA代码以帮助您:

子合并列()
'声明一些索引变量
尺寸a、b、c、x为整数
'x是我们要放置合并数字列的位置
x=3
'b是要拾取的列的索引
“从1点开始
c是我们要接的那一排,从两点开始
b=1
c=2
'下一个循环遍历左侧的所有数字
对于a=2到7
'首先将第一个单元格设置为正确的值
单元(a,x)=单元(c,b)
“现在我们更改索引
如果b=1,则
“换到下一个柱子
b=2
其他的
'否则b=2,我们需要移动行
b=1
c=c+1
如果结束
下一个
端接头

这是我的答案,希望能帮助任何人

子范围到列()
变暗rng As范围
细胞Dim i’指数
暗f
设置rng=范围(“A1:B3”)
i=0
对于每个f In rng
i=i+1
单元格(i,3).值=f.值
'单元格({a},{b})。值={c}
'
'a=要放置值的行,使用索引将值放置在单独的行中
'b=您可以使用所需的列,也可以像我一样使用硬编码。
'c=将每个单元格存储到c变量中,您将能够获取值或任何其他属性。
下一个f
端接头

此公式使用索引。仅供将来参考,因为它类似于加里的学生回答。但间接法是不稳定的,因为如果有任何变化,它将重新计算。索引公式仅在其引用的数据发生更改时才会重新计算:

=INDEX($A$1:$B$3,QUOTIENT(ROW(1:1)-1,2)+1,MOD(ROW(1:1)+1,2)+1)

这当然可以在R中完成;有什么你自己已经尝试过的吗?我使用了melt函数,但在R中给出第一列,然后是第二列,可能会有用。您可以尝试类似于
c(t)(as.matrix(dat))
data.frame(unlist(dat))
,或
stack(dat)
restrape2::melt(dat)
简单有效的解决方案。谢谢