• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXEL 行,列の並び順を変えないピボットテーブル)

EXEL 行,列の並び順を変えないピボットテーブルの作り方

このQ&Aのポイント
  • EXELで行と列の順序を変えずにピボットテーブルを作成する方法について教えてください。
  • 通常のピボットテーブルでは、行と列の順序が自動的に並び替えられますが、元の表の行と列の順序を保ったままピボットテーブルを作成したいです。
  • ユーザー設定リストでは指定する順序が文字列ではないため、ピボットテーブルに拘らず他の方法でも構いません。どなたか詳しい方、アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

前提として価格についても「同じ価格が現れる可能性がある」とすると、サイドナンバーを振ってピボットテーブルレポートで並べてしまうのが簡単そうです。 添付図: A列 ただの1から連番 B列 価格 C列 税番 D列 =IF(ROW()=MATCH(C2,C:C,0),MAX($D$1:D1)+1,VLOOKUP(C2,C:D,2,FALSE)) 番号と価格を列に配置 税番号と税番を行に配置 合計/金額を配置

home2007
質問者

お礼

サイドナンバーですか!その手があったんですね。 D列の関数も教えていただいて、助かりました。 早速実行してみます。 本当にありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! ピボットテーブルではなく、Sheet1のデータをSheet2に表示するようにしています。 作業用の列を設ければ関数でできると思いますが、 VBAでやってみました。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, j As Long, cnt As Long, c As Range, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") Application.ScreenUpdating = False wS2.Cells.ClearContents wS1.Range("A:A").Copy wS2.Cells(1, 1) cnt = 1 For i = 2 To wS1.Cells(Rows.Count, 2).End(xlUp).Row Set c = wS2.Range("1:1").Find(what:=wS1.Cells(i, 2), LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then cnt = cnt + 1 wS2.Cells(1, cnt) = wS1.Cells(i, 2) End If Next i For i = 2 To wS1.Cells(Rows.Count, 2).End(xlUp).Row j = WorksheetFunction.Match(wS1.Cells(i, 2), wS2.Range("1:1"), False) wS2.Cells(i, j) = wS1.Cells(i, 1) Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 関数でないので、Sheet1のデータ変更があるたびにマクロを実行する必要があります。m(_ _)m

home2007
質問者

お礼

VBAまで書いていただいて、恐縮です。 この方法も今後のために実行して、身につけたいと思います。 すばやいご回答、本当にありがとうございました。