2016-10-05 135 views
0

我在下面创建了一个示例表,它非常类似于模拟我面临的情况。我需要一个Excel VBA代码或可以使用公式完成?
当前表Excel在行字段之间插入数据

column1 | 
------------ 
    A  | 
    A  | 
    A  | 
    B  | 
    B  | 
    C  | 
    D  | 
    D  |  

结果所需

column1 | 
------------ 
    A  | 
    go  | 
    A  | 
    go  | 
    A  | 
    go  | 
    B  | 
    go  | 
    B  | 
    go  | 
    C  | 
    go  | 
    D  | 
    go  | 
    D  | 

回答

1

根据需要尽可能式方法

=IF(ISODD(ROW(A1)),INDEX(A:A,CEILING(ROW(A1)/2,1)),"go") 

复制下来。然后,您可以复制结果列并使用选择性粘贴>值将其粘贴到自身上,然后删除原始列。

说明:从里到外阅读公式。 Row(A1)将返回数字1.除以2,返回0.5,使用天花板返回下一个完整整数,即1.复制到第3行,例如,Row(A3)返回3,除以2 = 1.5,向上舍入到下一个整数返回2.

因此,在第1行中,公式计算结果为Index(A:A,1),表示“返回范围A:A中的第一个单元格”。在第3行中,公式计算结果为Index(A:A,2)这意味着 - 你明白了!在第5行中,我们将获得Index(A:A,3)等。

通过公式功能区上的评估公式工具运行公式,以查看逐步执行的这些操作。

+0

这正是我想要的,非常感谢你,你能否向我解释这部分INDEX(A:A,CEILING(ROW(A1)/ 2,1))? –

+0

我添加了一个解释。 – teylyn