webdevqa.jp.net

ピボットテーブルのテキスト値?

3列のテーブル(MySQL)があります:

Location    Category     Supplier

   A        Computers    Company X
   A        Printers     Company Y
   B        Computers    Company X
   B        Printers     Company Y
   B        Software     Company Y
   C        Computers    Company Y
   C        Software     Company Z

次に、次のように、上記の情報を含むマトリックスを作成する必要があります。

       Computers      Printers       Software

A      Company X      Company Y
B      Company X      Company Y      Company Y
C      Company Y                     Company Z

最終的にはこれをExcelで使用する必要があります。

実際には、カテゴリの数は可変であるため、MySQLで各列を結合して実行することは適切なオプションではありません。 PHPで関数を書くことはできましたが、もっと洗練された解決策があるかどうか疑問に思いました。

Excelでピボットテーブルを調べましたが、値としての数値にのみ適しているようです。しかし、私は自分でExcelを使ったことがないので、何かを見落としているかもしれません。

2
Dylan

これがあなたが望んでいたほど「エレガント」であるかどうかはわかりませんが、ピボットテーブルのアイデアは正しい方向に進んでいます。あなたは少しごまかす必要があります。ここでは、「ヘルパー列」、ピボットテーブル、および「vlookup」関数を友達にすることができます。

まず、元のデータに「SupplierNumber」のヘルパー列を追加します。 X社= 1、Y社= 2、Z社= 3。後でvlookupで簡単に使用できるように、ヘルパー列を最初の列として配置しました。データがセルA5:D11にあることに注意してください。

enter image description here

次に、このようにデータをピボットします。 [ピボットテーブルオプション]ダイアログの[表示]タブにある[クラシックピボットテーブルレイアウト]オプションを使用しました(ピボットテーブルを右クリックしてダイアログを表示します)。

enter image description here

ピボットテーブル全体を選択してコピーしてから、元のピボットテーブルの横にある別の場所に「特殊値/値を貼り付け」ます。次に、表のコピーの本文に、示されている式を入力します。 vlookup式は、元のピボットテーブル(「H7」参照-前の図を参照)と、前述の範囲A5:D11を参照していることに注意してください。

enter image description here

私が言ったように、それはエレガントではありませんが、それは機能します。あなたのために「エレガントな」解決策を思い付く可能性が高いこのサイトを閲覧する多くの賢い人々がいます!

2
F106dart

ピボットテーブルを完全に回避できることがわかりました。以下のスクリーンショットを参照してください。ヘルパー列を使用します。表示される名前付き範囲を定義します。 G14:J18のようにレイアウトを設定します。表の本文で、SUMPRODUCTとともにVLOOKUPを使用します。

enter image description here

0
F106dart