Excelで条件に基づいて行から列に転置する方法(2つの方法)

  • これを共有
Hugh West

一般的に トランスポーズ 関数は、行から列への変換によく使われますが、一意な値など特定の条件に依存する結果は返されません。 このチュートリアルでは、以下の方法を紹介します。 Excel で条件に基づいて行と列を入れ替える。

練習用ワークブックをダウンロードする

この練習用ワークブックをダウンロードして、この記事を読みながらエクササイズしてください。

条件を指定して行と列を入れ替える.xlsm

2 Excelで条件に基づいて行から列へ転置する便利な方法

下図にいくつかの商品とその数量をデータ化したものを掲載しました。 の行は列に転置されます。 私たちは 基準に基づいて、行を列に転置する。 のユニーク値のうち、別のセルに重複して入力されているものがあるためです。 まず、そのセルにある INDEX , MATCH , COUNTIF , イフ そして イフエラー 関数を使って数式を作成します。 ブイビーエー のコードで、同じことを実現できます。

1.INDEX関数、MATCH関数、COUNTIF関数を使った計算式を適用して、Excelで条件に基づいて行から列へ転置する

の公式を適用していきます。 INDEX , MATCH , COUNTIF , イフ そして イフエラー 関数を配列で使用することができます。

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

  • インセル E5 と入力し、以下の計算式を入力すると、ユニークな製品が得られます。
=index($b$5:$b$12, match(0, countif($e$4:$e4, $b$5:$b$12), 0))

ステップ2:配列の適用

  • 数式を配列で適用するには Ctrl + シフト + 入力

  • したがって、最初のユニークな結果を得ることができます。

ステップ3:セルのオートフィル

  • すべての一意な値を取得するには オートフィル ハンドルツールでカラムをオートフィルする。

ステップ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)

ステップ5:配列の適用

  • アレイを挿入するには、 を押します。 Ctrl + シフト + 入力 .

  • その結果、細胞 F5 は、下図のように最初に転置された値を表示します。

  • でドラッグダウンします。 オートフィルハンドルツール をクリックすると、カラムがオートフィルされます。

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

続きを読む: Excelでグループ内の複数行を列方向に転置する

類似の読み物

  • エクセルで重複した行を列に転置する方法(4つの方法)
  • Excel VBA:グループ内の複数行を列方向に転置する
  • エクセルで複数の列を1つの列に転置する(3つの便利な方法)
  • エクセルで転置を反転させる方法(3つの簡単な方法)

2.Excelで条件に基づいて行を列に転置するVBAコードを実行する

ステップ1:モジュールの作成

  • まず最初に アルト + F11 を開始する。 VBAマクロ .
  • をクリックします。 インサート .
  • を作成するには モジュール を選択します。 モジュール オプションを使用します。

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

  • 以下を貼り付けます。 ブイビーエー
 Sub TransposeRows() '変数の定義 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 '入力範囲の値と入力欄を設定 RngText = ActiveWindow.RangeSelection.Address Set InputRng = Application.InputBox("Select Your Input" )Range for 2 columns:", "ExcelWIKI", RngText, , , , 8) Set InputRng = Application.Intersect(InputRng, InputRng.Worksheet.UsedRange) 'Apply Condition to count only 2 columns and to show msg box for alerting 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 two columns ".列数指定範囲に含まれる列は、2列の範囲に含まれます。ExcelWIKI" Exit Sub End If '入力範囲に値と入力ボックスを設定 Set OutputRng = Application.InputBox("Select Your Output Range (one cell:", "ExcelWIKI", RngText, , , 8) If OutputRng Is Nothing Then Exit Sub Set OutputRng = OutputRng.Range(1) 'Count RowsNumber = InputRng.Rows.Count 'Apply For loop For p = 2 To RowsNumber xColumn.Add InputRng.Cells(p, 1).Value, InputRng.Cells(p.).Value' Set InputRng = OutputRng(RowsNumber) '行数'を数える RowRows.Count '入力レンジに値(0) を設定します。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 '転置コピーアンドペースト InputRng.Range("B2:B" &.Count) = xColCr; xRowLow(0); xColumn(2) = pColCr (2) = xColCr (2) = pColCr (2) = xRowLow (2) = xLow(2); xLOW (1) = xLOW (2)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アウトプットRng.Resize(1, CountRow + 1).PasteSpecial Paste:=xlPasteFormatsInputRng.AutoFilter Application.ScreenUpdating = True End Sub 

ステップ3:プログラムの実行

  • 最初に 救う を押してください。 F5 をクリックしてプログラムを実行します。
  • ヘッダーでデータセットを選択します。
  • をクリックします。 よっしゃー .

  • セルを選択すると アウトプット
  • をクリックします。 よっしゃー .

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

続きを読む: エクセルVBAで行を列に転置する方法(理想的な例4つ)

結論

この記事で、どのようにチュートリアルを行うか、お分かりいただけたと思います。 エクセルで基準に基づいて行と列を入れ替える これらの手順を習得し、データセットに適用する必要があります。 練習用ワークブックを見て、これらのスキルをテストしてください。 このようなチュートリアルを作り続けることができるのは、皆様の貴重なご支援のおかげです。

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

私たち Exceldemy また、このチームでは、お客様からの問い合わせに常に迅速に対応しています。

私たちと一緒に学び続けましょう。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。