1

Office 2010 を使用しています。
すべてが同じシートにあります。
列 ABC & D のデータは変更される可能性があります (毎日増加または減少)


私は4列を持っています

                            OUTPUT --> IN column F should be 
---A-----B-----C------D---------------------------------------F
   1     5     8     AP                                       1
   2     6     9     BP                                       2
   3     7     1     CD                                       3
   4           5     QW                                       4
                                                              5
                                                              6
                                                              7
                                                              8
                                                              9
                                                              1
                                                              5
                                                              AP
                                                              BP
                                                              CD
                                                              QW

列 ABC & D の長さは増減できます。

4

3 に答える 3

1

このサイトの助けを借りてget-digital-help.com/

列を組み合わせるただし、これは静的なものにすぎません。

動的な意味変化範囲に変換しました。

たとえば、私はABCD IN Fを投稿しました

式をより明確にするために、Name Manager に式を入力します

。BELOW IS DYNAMIC FORMULA FOR EACH COLUMN (name manager に入ります)

ALIST = =OFFSET($A$1,0,0,COUNTA($A:$A),1)
BLIST = =OFFSET($B$1,0,0,COUNTA($B:$B),1)
CLIST = =OFFSET($C$1,0,0,COUNTA($C:$C),1)
DLIST = =OFFSET($D$1,0,0,COUNTA($D:$D),1)

FORMULA IN COLUMN Fを選択して下にドラッグ

  =IFERROR(INDEX(ALIST, ROWS(F$1:$F1)), 
   IFERROR(INDEX(BLIST, ROWS(F$1:$F1)-ROWS(ALIST)), 
   IFERROR(INDEX(CLIST, ROWS(F$1:$F1)-ROWS(ALIST)-ROWS(BLIST)),
   IFERROR(INDEX(DLIST, ROWS(F$1:$F1)-ROWS(ALIST)-ROWS(BLIST)-ROWS(CLIST)),""))))

スクリーンショット

ここに画像の説明を入力 ここに画像の説明を入力

于 2013-02-08T17:26:35.623 に答える
1

以下を使用します。変更する必要がある範囲を受け入れ、値の垂直配列を返します。値を埋めるには、配列数式を使用します。

Function ToVector(rng As Range)

    Dim cells()
    ReDim cells(rng.cells.Count)

    Dim i As Double

    For Each cell In rng

        cells(i) = cell
        i = i + 1

    Next cell

    ToVector = Application.WorksheetFunction.Transpose(cells)

End Function
于 2013-02-08T15:35:07.737 に答える
1

これはどう?

Sub move()
    Dim ws As Worksheet
    Dim outputColumn As Long
    Dim currentColumn As Long
    Dim currentOutputRow As Long

    Set ws = ActiveSheet
    outputColumn = 6 ' column f

    For currentColumn = 1 To 4
        currentOutputRow = ws.Cells(ws.Rows.Count, outputColumn).End(xlUp).Row
        If (currentOutputRow > 1) Then
            currentOutputRow = currentOutputRow + 1
        End If

        ws.Range(ws.Cells(1, currentColumn), ws.Cells(ws.Rows.Count, currentColumn).End(xlUp)).Copy _
            ws.Cells(currentOutputRow, outputColumn)
    Next
End Sub
于 2013-02-08T14:39:30.157 に答える