Note: The other languages of the website are Google-translated. Back to English

 別の列の一意の値に基づいて、ある列のセルを転置する方法は?

XNUMXつの列を含むデータの範囲があるとします。次に、ある列のセルを別の列の一意の値に基づいて水平行に転置して、次の結果を取得します。 Excelでこの問題を解決するための良いアイデアはありますか?

docは一意の値を転置します1

数式を使用した一意の値に基づいて、セルをXNUMXつの列に転置します

VBAコードを使用して一意の値に基づいてXNUMXつの列のセルを転置します

Kutools for Excelを使用して、一意の値に基づいてXNUMXつの列のセルを転置します。


次の配列数式を使用すると、一意の値を抽出し、対応するデータを水平方向の行に転置できます。次のようにしてください。

1。 次の配列数式を入力します。 = INDEX($ A $ 2:$ A $ 16、MATCH(0、COUNTIF($ D $ 1:$ D1、$ A $ 2:$ A $ 16)、0)) 空白のセル、たとえばD2に入れて、 Shift + Ctrl + Enter 正しい結果を得るために一緒にキーを押します。スクリーンショットを参照してください。

docは一意の値を転置します2

注意:上記の式では、 A2:A16 一意の値を一覧表示する列であり、および D1 この数式セルの上のセルです。

2。 次に、塗りつぶしハンドルをセルまでドラッグして、すべての一意の値を抽出します。スクリーンショットを参照してください。

docは一意の値を転置します3

3。 次に、この数式をセルE2に入力します。 =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0)、を押すのを忘れないでください Shift + Ctrl + Enter 結果を取得するためのキー。スクリーンショットを参照してください。

docは一意の値を転置します4

注意:上記の式では: B2:B16 転置する列データです。 A2:A16 に基づいて値を転置する列であり、 D2 手順1で抽出した一意の値が含まれます。

4. 次に、0が表示されるまで、転置データを一覧表示するセルの右側に塗りつぶしハンドルをドラッグします。スクリーンショットを参照してください。

docは一意の値を転置します5

5。 次に、次のスクリーンショットに示すように、塗りつぶしハンドルをセルの範囲までドラッグして、転置データを取得します。

docは一意の値を転置します6


数式が複雑で理解しにくい場合があります。ここでは、次のVBAコードを実行して、必要な結果を得ることができます。

1。 を押し続けます Alt + F11 キーを押して アプリケーション向け Microsoft Visual Basic 窓。

2に設定します。 OK をクリックします。 インセット > モジュール、次のコードをに貼り付けます モジュール 窓。

VBAコード:別の列の一意の値に基づいて、ある列のセルを転置します。

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. 次に、 F5 このコードを実行するためのキーを押すと、使用するデータ範囲を選択するように促すプロンプトボックスが表示されます。スクリーンショットを参照してください。

docは一意の値を転置します7

4。 そして、 OK ボタンをクリックすると、別のプロンプトボックスが表示され、結果を表示するセルを選択するように促されます。スクリーンショットを参照してください。

docは一意の値を転置します8

6に設定します。 OK をクリックします。 OK ボタンをクリックすると、列Bのデータが列Aの一意の値に基づいて転置されます。スクリーンショットを参照してください。

docは一意の値を転置します9


あなたが持っている場合 Kutools for Excel高度な結合行 および 分割セル ユーティリティを使用すると、数式やコードを使用せずにこのタスクをすばやく完了できます。

Kutools for Excel : 300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます.

インストールした後 Kutools for Excel、次のようにしてください。

1。 使用するデータ範囲を選択します。 (元のデータを保持したい場合は、最初にデータをコピーして別の場所に貼り付けてください。)

2。 次に、をクリックします クツール > マージ&スプリット > 高度な結合行、スクリーンショットを参照してください:

3。 の中に 列に基づいて行を組み合わせる ダイアログボックスで、次の操作を行ってください。

(1.)データを転置する列名をクリックし、 主キー;

(2.)転置したい別の列をクリックし、をクリックします 組み合わせる 次に、XNUMXつの区切り文字を選択して、スペース、コンマ、セミコロンなどの結合されたデータを区切ります。

docは一意の値を転置します11

4。 次に、をクリックします Ok ボタンをクリックすると、列Bのデータが列Aに基づいてXNUMXつのセルに結合されます。スクリーンショットを参照してください。

docは一意の値を転置します12

5。 次に、結合されたセルを選択して、 クツール > マージ&スプリット > 分割セル、スクリーンショットを参照してください:

6。 の中に 分割セル ダイアログボックスで 列に分割種類 オプションを選択し、結合されたデータを区切るセパレータを選択します。スクリーンショットを参照してください。

docは一意の値を転置します14

7。 次に、をクリックします Ok ボタンをクリックし、セルを選択して、分割結果をポップアウトされたダイアログボックスに配置します。スクリーンショットを参照してください。

docは一意の値を転置します15

8に設定します。 OK をクリックします。 OK、および必要に応じて結果が得られます。 スクリーンショットを参照してください:

docは一意の値を転置します16

今すぐExcel用のKutoolsをダウンロードして無料トライアル!


Kutools for Excel:300以上の便利なExcelアドインがあり、30日以内に制限なしで無料で試すことができます。 今すぐダウンロードして無料トライアル!

最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (56)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
どうすれば反対方向に行くことができますか? 複数の列から単一の列に? 前もって感謝します! ティム
このコメントは、サイトのモデレーターによって最小化されました
これは素晴らしかった。 私は行Aに約2000の固有の値を持つExcelを持っていて、あなたの助けなしにこの演習を管理することはできませんでした。 大変感謝します。
このコメントは、サイトのモデレーターによって最小化されました
最初のステップ自体は失敗します=INDEX($ A $ 2:$ A $ 16、MATCH(0、COUNTIF($ D $ 1:$ D1、$ A $ 2:$ A $ 16)、0))はValueNotAvailableエラーを返します
このコメントは、サイトのモデレーターによって最小化されました
逆のことをしたいだけです。 私はすでに最終結果を持っているように、そして私は最初のステップを達成したいと思っています。
このコメントは、サイトのモデレーターによって最小化されました
私は同じものを探しています
このコメントは、サイトのモデレーターによって最小化されました
反対のシナリオの解決策を見つけましたか? ありがとう!
このコメントは、サイトのモデレーターによって最小化されました
逆もやりたいです。 あなたが紳士を得た解決策はありますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、みんな、
この記事の例に基づいて反対の結果を得るには、次のVBAコードを適用できます:(注:転置するデータ範囲を選択するときは、ヘッダー行を除外してください)

Sub TransposeUnique_2()
Dim xLRow、xLCount As Long
範囲としての薄暗いxRg
範囲としての薄暗いxOutRg
範囲としての薄暗いxObjRRg
文字列としての薄暗いxTxt
Dim xCount As Long
範囲としての薄暗いxVRg
エラーで次の再開
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox( "データ範囲を選択してください:"、 "Kutools for Excel"、xTxt 、、、、、、 8)
xRg = Application.Intersect(xRg、xRg.Worksheet.UsedRange)を設定します
xRgが何もない場合は、Subを終了します
If(xRg.Rows.count <2)または_
(xRg.Areas.count> 1)次に
MsgBox "無効な選択"、、 "Kutools for Excel"
サブを終了
終了する場合
Set xOutRg = Application.InputBox( "出力範囲を選択してください(8つのセルを指定してください):"、 "Kutools for Excel"、xTxt 、、、、、、 XNUMX)
xOutRgが何もない場合は、Subを終了します
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
xLRow=1の場合xRg.Rows.countへ
xObjRRg = Range(xRg.Cells(xLRow、2)、xRg.Cells(xLRow、xLCount))。SpecialCells(xlCellTypeConstants)を設定します
xObjRRg.Copy
xOutRg.Offset(、1).PasteSpecial Paste:= xlPasteAll、Operation:= xlNone、SkipBlanks:= False、Transpose:= True
Application.CutCopyMode = False
Range(Cells(xOutRg.Row、xOutRg.Column)、Cells(xOutRg.Row + xObjRRg.count-1、xOutRg.Column))。Value = xRg.Cells(xLRow、1).Value
xOutRg = xOutRg.Offset(RowOffset:= xObjRRg.count)を設定します
次へ
Application.ScreenUpdating = True
End Subの
このコメントは、サイトのモデレーターによって最小化されました
B列に一意の値がないが、それらの値が必要な場合の転置の方法
KTE100
KTE100
それらがXNUMXつの異なるトランザクションであると仮定します
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ディディン、

問題をより明確または詳細に説明できますか?
問題のスクリーンショットの例を挿入できます。
ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
以下の要件について教えてください。
製品-----注文
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
期待される出力
製品-----注文-----注文------注文
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







このコメントは、サイトのモデレーターによって最小化されました
私も同じものが必要です。 100をXNUMX回表示したいのはデータにある場合です
このコメントは、サイトのモデレーターによって最小化されました
そのための公式を提案できますか
このコメントは、サイトのモデレーターによって最小化されました
この課題に対する回答/解決策を得たことがありますか? 私も同じです。
このコメントは、サイトのモデレーターによって最小化されました
これを逆に行う方法はありますか? つまり、さまざまな長さの行のデータで、XNUMXつの列に並べ替えますか? 添付資料参照。
このコメントは、サイトのモデレーターによって最小化されました
一意の値だけでなく、重複する値(すべての値-一意+重複)も転置したい。 そのための公式も教えていただけますか。
このコメントは、サイトのモデレーターによって最小化されました
私は同じ必要があります
このコメントは、サイトのモデレーターによって最小化されました
この課題に対する回答/解決策を得たことがありますか? 私も同じです。
このコメントは、サイトのモデレーターによって最小化されました
以下の式で:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

近似一致を使用してデータを転置するにはどうすればよいですか? たとえば、列Aの最初の9文字/桁に一致する列Bのすべての値を抽出したいですか? 列Bは11文字ですが、Aは9文字です。ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
私はこれとは正反対のことをする必要があります。 行IDに関連付けられた列がたくさんあり、それらをXNUMXつの列に貼り付けたい
たとえば、私は持っています
rowid、value、value1、value2、value3、value4、value..225
100、イルカ、255、9--、サラ、ジェームソン、...。
179、ルーター、洪水、ジェイソン、89、鼻



こんな感じにしたい
100、イルカ
100、255
100、9--
100、サラ
100、ジェメソン
179、ルーター
179、洪水
179、ジェイソン
179、89
179、鼻
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、デイブ、
この問題を解決するには、以下のVBAコードを使用してください:(注:転置するデータ範囲を選択するときは、ヘッダー行を除外してください)。

Sub TransposeUnique_2()
Dim xLRow、xLCount As Long
範囲としての薄暗いxRg
範囲としての薄暗いxOutRg
範囲としての薄暗いxObjRRg
文字列としての薄暗いxTxt
Dim xCount As Long
範囲としての薄暗いxVRg
エラーで次の再開
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox( "データ範囲を選択してください:"、 "Kutools for Excel"、xTxt 、、、、、、 8)
xRg = Application.Intersect(xRg、xRg.Worksheet.UsedRange)を設定します
xRgが何もない場合は、Subを終了します
If(xRg.Rows.count <2)または_
(xRg.Areas.count> 1)次に
MsgBox "無効な選択"、、 "Kutools for Excel"
サブを終了
終了する場合
Set xOutRg = Application.InputBox( "出力範囲を選択してください(8つのセルを指定してください):"、 "Kutools for Excel"、xTxt 、、、、、、 XNUMX)
xOutRgが何もない場合は、Subを終了します
Application.ScreenUpdating = False
xLCount = xRg.Columns.count
xLRow=1の場合xRg.Rows.countへ
xObjRRg = Range(xRg.Cells(xLRow、2)、xRg.Cells(xLRow、xLCount))。SpecialCells(xlCellTypeConstants)を設定します
xObjRRg.Copy
xOutRg.Offset(、1).PasteSpecial Paste:= xlPasteAll、Operation:= xlNone、SkipBlanks:= False、Transpose:= True
Application.CutCopyMode = False
Range(Cells(xOutRg.Row、xOutRg.Column)、Cells(xOutRg.Row + xObjRRg.count-1、xOutRg.Column))。Value = xRg.Cells(xLRow、1).Value
xOutRg = xOutRg.Offset(RowOffset:= xObjRRg.count)を設定します
次へ
Application.ScreenUpdating = True
End Subの
このコメントは、サイトのモデレーターによって最小化されました
ありがとう、それは完璧に動作します、あなたは私を2日節約しました! :)
このコメントは、サイトのモデレーターによって最小化されました
こんにちはスカイヤン、
3列のコードを共有してください。 以下に例を示します。
次のようなデータが必要です:yogesh@gmail.comコミュニティ1表示のみコミュニティ2表示のみ......goyal@gmail.comコミュニティ1表示のみコミュニティ2表示のみ.......。

このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ygoyal、

問題を解決するには、以下のコードを適用してください。

Sub TransposeUnique_2()

Dim xLRow、xLCount As Long

範囲としての薄暗いxRg

範囲としての薄暗いxOutRg

範囲としての薄暗いxObjRRg

文字列としての薄暗いxTxt

Dim xCount As Long

範囲としての薄暗いxVRg

Dim xC、xI、xI1、xI2 As Integer

エラーで次の再開

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox( "データ範囲を選択してください:"、 "Kutools for Excel"、xTxt 、、、、、、 8)

xRg = Application.Intersect(xRg、xRg.Worksheet.UsedRange)を設定します

xRgが何もない場合は、Subを終了します

If(xRg.Rows.Count <2)または_

(xRg.Areas.Count> 1)次に

MsgBox "無効な選択"、、 "Kutools for Excel"

サブを終了

終了する場合

Set xOutRg = Application.InputBox( "出力範囲を選択してください(8つのセルを指定してください):"、 "Kutools for Excel"、xTxt 、、、、、、 XNUMX)

xOutRgが何もない場合は、Subを終了します

Application.ScreenUpdating = False

xLCount = xRg.Columns.Count

xLRow=1の場合xRg.Rows.Countへ

xObjRRg = Range(xRg.Cells(xLRow、2)、xRg.Cells(xLRow、xLCount))。SpecialCells(xlCellTypeConstants)を設定します

エラーで次の再開

xC =(xObjRRg.Count Mod 2)

xC<>0の場合

xC = Int(xObjRRg.Count / 2)+ 1



xC = Int(xObjRRg.Count / 2)

終了する場合

xI1 = 1

xI2 = 2

xI=1からxCの場合

Range(xObjRRg.Item(xI1)、xObjRRg.Item(xI2))。Copy

xOutRg.Offset(、1).PasteSpecial Paste:= xlPasteAll、Operation:= xlNone、SkipBlanks:= False、Transpose:= False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow、1).Value

xOutRg = xOutRg.Offset(RowOffset:= 1)を設定します

xI1 = xI1 +(2)

xI2 = xI2 +(2)

次へ

次へ

Application.ScreenUpdating = True

End Subの



ぜひお試しください。お役に立てば幸いです。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはブロ、コードは反対に働いています。 要件の添付のスクリーンショットを参照してください。利用可能なデータは行単位であり、列のデータを転置したいと考えています。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ygoyal、
返信が遅くなってすみません。次のコードを適用してください。ぜひお試しください。

サブtransposeunique()

'updateby Extendoffice

xLRowを暗くする

ディム・アイ・アス・ロング

文字列としての薄暗いxCrit

新しいコレクションとしての薄暗いxCol

範囲としての薄暗いxRg

範囲としての薄暗いxOutRg

文字列としての薄暗いxTxt

Dim xCount As Long

範囲としての薄暗いxVRg

範囲としての薄暗いxFRg、xSRg、xCRg

エラーで次の再開

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox( "データ範囲を選択してください(3列のみ):"、 "Kutools for Excel"、xTxt 、、、、、 8)

xRg = Application.Intersect(xRg、xRg.Worksheet.UsedRange)を設定します

xRgが何もない場合は、Subを終了します

If(xRg.Columns.Count <> 3)または_

(xRg.Areas.Count> 1)次に

MsgBox「使用される範囲はXNUMX列のXNUMXつの領域のみです」、、「KutoolsforExcel」

サブを終了

終了する場合

Set xOutRg = Application.InputBox( "出力範囲を選択してください(8つのセルを指定してください):"、 "Kutools for Excel"、xTxt 、、、、、、 XNUMX)

xOutRgが何もない場合は、Subを終了します

xOutRg = xOutRg.Range(1)を設定します

xLRow = xRg.Rows.Count

i=2の場合xLRowへ

xCol.Add xRg.Cells(i、1).Value、xRg.Cells(i、1).Value

次へ

Application.ScreenUpdating = False

Application.ScreenUpdating = False

i=1の場合xCol.Countへ

xCrit = xCol.Item(i)

xOutRg.Offset(i、0)= xCrit

xRg.AutoFilter Field:= 1、Criteria1:= xCrit

xVRg = xRg.Range( "B2:B"&xLRow).SpecialCells(xlCellTypeVisible)を設定します

xVRg.Count>xCountの場合xCount=xVRg.Count

xSRg = xRg.Range( "B2:B"&xLRow).SpecialCells(xlCellTypeVisible)を設定します

xCRg = xOutRg.Offset(i、1)を設定します

xSRgの各xFRgについて

xFRg.Copy

xCRg.PasteSpecial

xRg.Range( "B1")。Copy

xCRg.Offset(-(i)、0).PasteSpecial

xFRg.Offset(0、1).Copy

xCRg = xCRg.Offset(0、1)を設定します

xCRg.PasteSpecial

xRg.Range( "c1")。Copy

xCRg.Offset(-(i)、0).PasteSpecial

xCRg = xCRg.Offset(0、1)を設定します

次へ

Application.CutCopyMode = False

次へ

xRg.Item(1).Copy

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = True

End Subの
このコメントは、サイトのモデレーターによって最小化されました
Hey Broこのコードを使用してみましたが、このコードを実行するとExcelがハングし、上記のコードからの出力が表示されませんでした。 この場合の対処法を提案してください。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
コードは私のワークブックでうまく機能しますが、どのExcelバージョンを使用していますか?
このコメントは、サイトのモデレーターによって最小化されました
MS Excel 2016
このコメントは、サイトのモデレーターによって最小化されました
このコードは私のExcel2016でも正常に機能します。最初に、より小さな範囲のデータで試してみてください。
このコメントは、サイトのモデレーターによって最小化されました
160のレコードでテストしましたが、その中にはまだ重複がありました。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはスカイヤン、これが大好きです、XNUMX列で動作する可能性はありますか? ここでも、最初のXNUMXつをコンパレータとして使用するだけですか、それとも、列を選択する前に列の数を選択する機能を使用する方がよいでしょうか。 私はあなたのスクリプトを調べましたが、これを達成する方法についての手がかりはありません...
このコメントは、サイトのモデレーターによって最小化されました
こんにちはスカイヤン、これが大好きです、XNUMX列で動作する可能性はありますか? ここでも、最初のXNUMXつをコンパレータとして使用するだけですか、それとも、列を選択する前に列の数を選択する機能を使用する方がよいでしょうか。 私はあなたのスクリプトを調べましたが、これを達成する方法についての手がかりはありません...
このコメントは、サイトのモデレーターによって最小化されました
ブロ、plsはこれを助けます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちはブロ、まだあなたの助けを待っています
このコメントは、サイトのモデレーターによって最小化されました
こんにちは
このコメントは、サイトのモデレーターによって最小化されました
デイブと同じように、私はこれとは正反対のことをする必要があります。 表2を表1に置き換えます。入力表2、出力表1。
このコメントは、サイトのモデレーターによって最小化されました
= INDEX($ A $ 2:$ A $ 16、MATCH(0、COUNTIF($ D $ 1:$ D1、$ A $ 2:$ A $ 16)、0))は、列の一意の値を新しい値に転置するために機能しました列しかし...作成された新しい列が昇順で転置されるようにソート関数で広告を出す方法はありますか?


ありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
同じ出力を取得する必要がありますが、事前定義された列を選択するには($ A、$ B)であり、出力列の位置は$ D$1である必要があります。
誰かがアイデアを持っているなら、それは大きな助けになるでしょう!!!!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、上記の機能を使用して、各行を追加し、XNUMXつの列に出力を表示できますか。
このコメントは、サイトのモデレーターによって最小化されました
だから私は会社で働いています。 姓、名、ランク、セクション、電話番号、住所などの情報の列があります。 同様の式を使用して、情報の行全体を名前で列に転置する方法はありますか?
このコメントは、サイトのモデレーターによって最小化されました
= INDEX($ A $ 2:$ A $ 16、MATCH(0、COUNTIF($ D $ 1:$ D1、$ A $ 2:$ A $ 16)、0))は、A列の一意の値を新しいものに転置するために機能しました列しかし...以下に示すように、B列のすべての値を転置する方法はありますか?

製品注文日製品注文注文注文注文注文注文注文
KTE 100 3/3/2019 KTE 100
KTO 150 3/3/2019 KTO 150
KTE 100 3/4/2019 BOT 150
KTO 100 3/4/2019 COD 200
KTO200年3月5日
KTE100年3月5日
ボット150年3月5日
ボット100年3月6日
KTO100年3月6日
KTE200年3月6日
BOT200年3月7日
代金引換200年3月7日
KTE100年3月7日
KTO150年3月7日
ボット150年3月8日
KTE150年3月8日
代金引換150年3月8日
ボット100年3月9日
ボット200年3月10日
代金引換100年3月10日
KTO200年3月10日
代金引換150年3月11日
KTE100年3月11日
このコメントは、サイトのモデレーターによって最小化されました
マクロが機能しませんでした。 セルA1の内容をコピーしただけです。
このコメントは、サイトのモデレーターによって最小化されました
列A(一意のID)-Eにデータセットがあります。各行にはID#に基づくデータがあり、ID#ごとに複数の行がありますが、ID#ごとに5つの行があり、他のすべてのデータは列にあります(それぞれの一意のIDの数に応じて、最小で25列、最大で15,000列になります)。 コードを見つけましたが、XNUMX列でしか機能しません。 XNUMXつの列(IDを含まない)を連結し、マクロの実行後に区切る必要がありました(多くの作業)。 XNUMX行のデータの場合、これには余分な時間がかかります。 動作する無限柱マクロはありますか? みなさん、よろしくお願いします!
IDコードSTコード#日付
このコメントは、サイトのモデレーターによって最小化されました
列Aに複数のIDがあり、列Bにデータを接続しているデータセットがあります。上記の数式を使用し、列Bのセルを一意のIDに基づいて行に転置するように少し変更しました。一意のIDを識別するために使用される式は次のとおりです。=INDEX($ A $ 2:$ A $ 13409、MATCH(0、COUNTIF($ D $ 1:$ D1、$ A $ 2:$ A $ 13409))、 0))。 転置に使用される式は次のとおりです。=IFERROR(INDEX($ B $ 2:$ B $ 13409、MATCH(0、IF($ A $ 2:$ A $ 13409 <> $ D2、1、0)+ COUNTIF($ D2: D2、$ B $ 2:$ B $ 13409)、0))、 "N / A")。 両方とも記事に記載されていますが、わずかに変更されています。

問題は、列Bのデータセットに重複があり、次々に表示されることがあり、列のすべての値を行に表示する必要があることです。

添付の画像は、表に表示したいものです(これは小さなサンプルサイズであり、実際のデータセットには13,000を超えるエントリがあります)。 現在起こっていることは、繰り返し値が検出されたとき、それをカウントしません。
つまり、ID 9の行11980には、0 -31.79 -0.19 -0.74 N / AN/Aのみが表示されるようになりました。代わりに表示する必要があるのは0-0 -31.79 -0.19 0.74 0 N / AN/Aの場合です。 ..。。

この問題を回避して解決する方法はありますか?

事前にありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
この課題に対する回答/解決策を得たことがありますか? 私も同じです。
このコメントは、サイトのモデレーターによって最小化されました
以下に示す3つの列を持つデータセットがあります。



列A列B列C



国1年1値1

国1年2値2

国1年3値3、



国2年1値1

国2年3値3、

...........



次のようなテーブルでこれらの3つの列を組み合わせる必要があります。

Year1 Year2 Year3 ................................. YearX



国1値1値2値3

Country2 Value1 #Missing Value3

.....
.....
.....

CountryXValuex.................。





私が直面している問題は、列Aの一部のデータについて、一部の年のみの値がないことです(たとえば、国2には2年目の値がありません)。





この問題を回避して解決する方法はありますか?



事前にありがとうございます!
このコメントは、サイトのモデレーターによって最小化されました
2つではなく1つの列をコピーする場合は、コードを共有してください。以下に例を示します。
ここにはまだコメントが投稿されていません
もっと読む

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護