VBA またはマクロでの動的な垂直セル結合

VBA またはマクロでの動的な垂直セル結合

注文した人ごとに注文したアイテムごとに1行のデータを取得しています。これを1人の行と注文したアイテムのマージに統合しようとしています。

スプレッドシートの元のデータ:
スプレッドシート内の元のデータ

データの最終目標:
データの最終目標

あなたの回答を見ると... 同じ行が異なる列に結合されている場合に、列内のセルを結合するマクロ

何をすべきか、私には考えがあります。

まず、すべての名前を 1 つのセルに結合して、上記の投稿のような状況にすることができます。ただし、どのように実行すればよいかはわかりません。if 句「A1=A2, A1&」は、今のところうまく機能していません。

したがって、これに関するどんな助けでも大歓迎です。

答え1

UDF&の組み合わせでSUBSTITUTE問題を解決できます:

ここに画像の説明を入力してください

使い方:

  • 0セルに入力してI236セルに数式を入力するI237:

=IF(G236=G237,I236+1,0)それを埋めてください。

  • どちらかを押すlt+F11 またはR右クリックTABを押して表示コードVB エディターのペン。
  • オピ &このVBAコードをオドル。

    Function SingleCellValue(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
    
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = Lookupvalue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellValue = Left(xRet, Len(xRet) - 1)
    End Function
    
  • セルに数式を入力するH249:

=SingleCellValue(G249,G236:H246,2,",")

  • セル内の最終式I249:

=SUBSTITUTE(H249, "Cust. Order,", "", 1)

数式を下方向に入力します。

注意

  • 後で見やすくするために、セル内の値を非表示にすることができますH249:H251
  • 必要に応じて数式内のセル参照を調整します。

関連情報