-1

以下の例に示されていることをExcelに実行させる方法を知っている人はいますか

A         |     B
================================
Apple     |     Pie
Apple     |     Sauce
Apple     |     Juice
Banana    |     Smoothie
Banana    |     Split

この構造に?

A        |    B         |     C      |    D      | 
==================================================
Apple    |   Pie        |    Sauce   |   Juice   |
Banana   |   Smoothie   |    Split   |           |

私はオンラインで検索してきましたが、これまでのところサポートされている方法を見つけることができません.VBAコードを書いてみる前に、まずサポートされている方法があるかどうかを知りたい.

通常の特殊貼り付け > 転置では、この形式は想定されていないため、この形式にはなりません。

大規模なデータセットに対してこれを自動化したいのは明らかです。

4

2 に答える 2

2

これには VBA を使用しますが、VBA 以外のソリューションが必要な場合は、これを参照してください。これは私がすぐに思いついたものであり、同じことを達成するためのより良い公式があると確信しています.

D2:D6値は列 A のピボットから取得できます

E2式があります

=IF(OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),0,1)=0,"",OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),0,1))

F2式があります

=IF(OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),1,1)=0,"",OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),1,1))

G2式があります

=IF(OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),2,1)=0,"",OFFSET(INDIRECT(CELL("address",INDEX($A$2:$A$16,MATCH(D2,$A$2:$A$16,0),1))),2,1))

数式を下にコピーするだけです。

ここに画像の説明を入力

于 2013-10-22T20:19:53.753 に答える
2

マクロを試してみたい場合は、これを試してみてください。

Sub TwoDimension()
    Dim s1 As Worksheet, s2 As Worksheet
    Dim N As Long, i As Long, K As Long
    Dim ii As Long
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    s1.Range("A1:B1").Copy s2.Range("A1:B1")
    N = s1.Cells(Rows.Count, "A").End(xlUp).Row
    K = 3
    ii = 1
    For i = 2 To N
        If s1.Cells(i, 1) = s1.Cells(i - 1, 1) Then
            s2.Cells(ii, K) = s1.Cells(i, 2)
            K = K + 1
        Else
            ii = ii + 1
            s2.Cells(ii, 1) = s1.Cells(i, 1)
            s2.Cells(ii, 2) = s1.Cells(i, 2)
            K = 3
        End If
    Next i
End Sub

データは別のワークシートで再フォーマットされます。

于 2013-10-22T20:23:41.390 に答える