各データを括弧で囲んだ単一行の列


0

次の変換を行うのに助けが必要です。

私は同じことを次のようにしたい: ここに画像の説明を入力してください 列を7151 7152 7153 7154単一の行に- >(7151)|(7152)|(7153)|(7154)


使用しているExcelのバージョンは何ですか?
mt025

2016バージョンを使用しています。
ユーザー768801

あなたはありますかTEXTJOINExcelのバージョンで機能を?もしそうなら="(" & TEXTJOIN(")|(",TRUE,A1:A4) & ")"
ロンローゼンフェルド

回答:


1
="("&A1&")|("&A2&")|("&A3&")|("&A4&")"

列Aの使用範囲に多くのデータが含まれる(または変更される場合がある)場合は、vbaコードを使用して結果を生成する必要があります。


0

これを実現するには、VBAコードのカスタム関数を使用します。

ExcelシートでAlt + F11を押してVBAエディターを開きます。[ファイル]メニューからモジュールを挿入し、左ペインのモジュール名をダブルクリックして(必要な場合)、ソースコードエディターを開きます。次のコードを貼り付けます。

 Function TXTJOIN(argument1 As Range)      'Accept input range

   rowcounter = argument1.Rows.Count
   If rowcounter > 255 Then
        TXTJOIN = CVErr(xlErrValue)  'If row counter > 255 return #VALUE! Error
        Exit Function
   End If
   colcounter = argument1.Columns.Count ' Check the number of columns in the input range

   If colcounter = 1 Then  'Process if it's a single column range

        For Each element In argument1
            result = result & "(" & element & ")" & "|"
        Next element

        TXTJOIN = Left(result, Len(result) - 1)
   Else

        TXTJOIN = CVErr(xlErrValue)  'If it's a multicolumn range, return #VALUE! Error
   End If


End Function

コードを保存して終了します。Office 2007以降を使用している場合は、Excelブックを.xlsmマクロ有効なExcelブックとして保存する必要があります。

このようにして、TXTJOINと呼ばれるカスタム関数を作成しました。

下の図に示すように、シートでこれを使用します。

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

このカスタム関数は、単一の列でのみ動作するように単純化されていることに注意してください。複数列の範囲を渡すと、#VALUE!が返されます。エラー。コードはこのワークブックに存在するため、これはこのワークブックでのみ機能します。さらに、A:Aが渡されるのを避けるため、連結するセルは最大255個に制限されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.