Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

通常、 TRANSPOSE 関数は、行を列に変換するためによく使用されます。ただし、一意の値など、特定の基準に応じた結果は返されません。このチュートリアルでは、Excel の条件に基づいて行を列に転置する方法を紹介します。

Excel で基準に基づいて行を列に転置する 2 つの便利な方法

以下の図には、いくつかの製品とその数量のデータセットが含まれています。 行は列に置き換えられます。 基準に基づいて行を列に入れ替えます 別のセルにいくつかの重複するエントリがあるため、一意の値の。まず、INDEX を使用します 、マッチCOUNTIFIF 、および IFERROR 数式を作成する関数。 VBA も実行します 同じことを達成するためのコード。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

1. INDEX、MATCH、および COUNTIF 関数を使用して数式を適用し、Excel の条件に基づいて行を列に転置する

最初に、INDEX の数式を適用します。 、マッチCOUNTIFIF 、および IFERROR 配列を持つ関数。

ステップ 1:INDEX、MATCH、および COUNTIF 関数を挿入する

  • セル E5 内 、次の数式を入力して、固有の商品を取得します。
=INDEX($B$5:$B$12, MATCH(0, COUNTIF($E$4:$E4, $B$5:$B$12), 0))

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 2:配列を適用する

  • 数式を配列に適用するには、 Ctrl キーを押します + シフト +入力

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • したがって、最初の一意の結果が得られます。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 3:セルの自動入力

  • 一意の値をすべて取得するには、AutoFill を使用します 列を自動入力するツールを処理します。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 4:IFERROR 関数を入力する

  • 数量の行の値を列に転置するには、次の式を記述してください。
=IFERROR(INDEX($C$5:$C$12, MATCH(0, COUNTIF($E5:E5, $C$5:$C$12) + IF($B$5:$B$12<>$E5,1,0),0)),0)

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 5:配列を適用する

  • 配列を挿入するには、 Ctrl を押します + シフト + 入る .

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • その結果、セル F5 以下の画像のように、最初の転置された値が表示されます。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • オートフィル ハンドル ツールで下にドラッグ 列を自動入力します。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • 最後に、オートフィル ハンドル ツールを使用して行を自動入力します。 .
  • したがって、転置された行はすべて、下の画像のように列に変換されます。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

続きを読む:グループ内の複数の行を Excel の列に入れ替える

類似の読み物

  • Excel で重複行を列に転置する方法 (4 つの方法)
  • Excel VBA:グループ内の複数の行を列に転置
  • Excel で複数の列を 1 つの列に置き換える (3 つの便利な方法)
  • Excel で逆転置する方法 (3 つの簡単な方法)

2. VBA コードを実行して、Excel の基準に基づいて行を列に転置する

ステップ 1:モジュールを作成する

  • まず、Alt キーを押します + F11 VBA マクロを開始するには .
  • [挿入] をクリックします .
  • モジュールを作成するには 、モジュールを選択します オプション

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 2:VBA コードを入力する

  • 次の VBA を貼り付けます
Sub TransposeRows()
'Define Variables
 Dim RowsNumber As Long
 Dim p As Long
 Dim xColCr As String
 Dim xColumn As New Collection
 Dim InputRng As Range
 Dim OutputRng As Range
 Dim RngText As String
 Dim CountRow As Long
 Dim xRowRg As Range
 On Error Resume Next
'Set values and Input Box fot Input Range
 RngText = ActiveWindow.RangeSelection.Address
 Set InputRng = Application.InputBox("Select Your Input Range for 2 columns:", "ExcelDemy", RngText, , , , , 8)
 Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange)
'Apply Condition to count only 2 columns and to show msg box for alerting to select only two columns
 If InputRng Is Nothing Then Exit Sub
 If (InputRng.Columns.Count <> 2) Or _
 (InputRng.Areas.Count > 1) Then
 MsgBox "The specified range is only area for 2 columns ", , "ExcelDemy"
 Exit Sub
 End If
'Set values and Input Box fot Input Range
 Set OutputRng = Application.InputBox("Select Your Output Range (one cell):", "ExcelDemy", RngText, , , , , 8)
 If OutputRng Is Nothing Then Exit Sub
 Set OutputRng = OutputRng.Range(1)
'Count Rows
 RowsNumber = InputRng.Rows.Count
'Apply For loop
 For p = 2 To RowsNumber
 xColumn.Add InputRng.Cells(p, 1).Value, InputRng.Cells(p, 1).Value
 Next
 Application.ScreenUpdating = False
 For p = 1 To xColumn.Count
 xColCr = xColumn.Item(p)
 OutputRng.Offset(p, 0) = xColCr
 InputRng.AutoFilter Field:=1, Criteria1:=xColCr
 Set xRowRg = InputRng.Range("B2:B" & RowsNumber).SpecialCells(xlCellTypeVisible)
 If xRowRg.Count > CountRow Then CountRow = xRowRg.Count
'Copy and paste with transpose
 InputRng.Range("B2:B" & RowsNumber).SpecialCells(xlCellTypeVisible).Copy
 OutputRng.Offset(p, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
 Application.CutCopyMode = False
 Next
 OutputRng = InputRng.Cells(1, 1)
 OutputRng.Offset(0, 1).Resize(1, CountRow) = InputRng.Cells(1, 2)
 InputRng.Rows(1).Copy
 OutputRng.Resize(1, CountRow + 1).PasteSpecial Paste:=xlPasteFormats
 InputRng.AutoFilter
 Application.ScreenUpdating = True
End Sub

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

ステップ 3:プログラムを実行する

  • まず 保存 F5 を押します プログラムを実行します。
  • ヘッダーでデータセットを選択してください。
  • [OK] をクリックします .

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • セルを選択して 出力 を取得します
  • 次に、[OK] をクリックします .

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

  • その結果、下の画像に示すように、行が列に転置された結果が得られます。

Excel で基準に基づいて行を列に転置する方法 (2 つの方法)

続きを読む:Excel VBA を使用して行を列に転置する方法 (4 つの理想的な例)

結論

この記事で、Excel の基準に基づいて行を列に転置する方法についてのチュートリアルが得られたことを願っています。 .これらの手順はすべて学習し、データセットに適用する必要があります。練習用ワークブックを見て、これらのスキルを試してみてください。貴重なご支援のおかげで、このようなチュートリアルを作成し続けることができました。

ご不明な点がございましたら、お気軽にお問い合わせください。また、下のセクションにコメントを残してください。

私たち、Exceldemy チームは、常にあなたの質問に応えます。

私たちと一緒に学び続けてください。

関連記事

  • Power Query を使用して Excel で列を行に変換する
  • セルの値に基づいて Excel で列を行に変換する方法
  • Excel で複数の列を行に転置する VBA (2 つの方法)
  • 一重引用符を使用して列をカンマ区切りのリストに変換する方法
  • Excel 貼り付け転置ショートカット:4 つの簡単な使い方
  • 参照を変更せずに数式を Excel で転置する (4 つの簡単な方法)
  • Excel VBA で転置する方法 (3 つの方法)


  1. Excel で列を制限する方法 (3 つの簡単な方法)

    この記事では、Excel で列を制限する方法を学習します。 .場合によっては、ユーザーは特定の列で作業する必要があります。その場合、列を制限する必要があります。今日は 3 を表示します 簡単な方法。これらの方法を使用すると、Excel で列を簡単に制限できます。それでは、遅滞なく、議論を始めましょう。 練習帳をダウンロード ここから練習帳をダウンロードできます。 Excel で列を制限する 3 つの簡単な方法 これらの方法を説明するために、ID に関する情報を含むデータセットを使用します。 、名前 、部署 会社の一部の従業員の。このデータセットを使用して列を制限しようとします。 1.

  2. Excel で XML を列に変換する方法 (4 つの適切な方法)

    このチュートリアルでは、 4 を紹介します。 XML を変換する適切な方法 Excelの列に。大規模なデータセットでもこれらの方法を使用して、 XML からデータ セルを見つけることができます。 データ値。このチュートリアルでは、Excel 関連のタスクで非常に役立ついくつかの重要な Excel ツールとテクニックについても学習します。 ここから練習用ワークブックをダウンロードできます。 Excel で XML を列に変換する 4 つの適切な方法 比較的簡潔な XML 手順を明確に説明するためのデータセット。データセットには約 7 あります 行と 2 列。最初は、すべてのセルを