一次将两个单元格的值洗牌到一个新行

Shuffle values to a new row two cells at a time

用最简单的方式解释一下:

| 1 | 2 | 3 | 4 |
| 5 | 6 | 7 | 8 |

...需要看起来像:

| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
| 7 | 8 |

我试过使用 TRANSPOSE() 函数,但在这种情况下它似乎不起作用。

我怎样才能完成这个简单的任务?

你把excel-vba放在你的标签里,所以我会post给你vba代码。我不知道如何用简单的单元格公式来做。希望它的可配置性足以满足您的需求,除了您给出的简单示例之外:

START_ROW = 1
START_COL = 1
STEP_COL = 2
OUTPUT_ROW = 3
OUTPUT_COL = 10

Row = START_ROW
Col = START_COL
Out_Row = OUTPUT_ROW
While Cells(Row, Col).Value <> ""
    While Cells(Row, Col).Value <> ""
        For step = 0 To STEP_COL - 1
            Cells(Out_Row, OUTPUT_COL + step).Value = Cells(Row, Col + step).Value
            Cells(Out_Row, OUTPUT_COL + step).Value = Cells(Row, Col + step).Value
        Next step
        Out_Row = Out_Row + 1
        Col = Col + STEP_COL
    Wend
    Col = START_COL
    Row = Row + 1
Wend

在右侧未使用的单元格中使用此公式,

=OFFSET($A, INT((ROW(1:1)-1)/2), COLUMN(A:A)-1+MOD((ROW(1:1)-1), 2)*2)

向右填写一栏并根据需要向下填写。您的结果应类似于以下内容。