人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelの操作法について質問です。
マクロを使わずに、表Aをもとに表Bを作成する方法はありますか?
実際には縦横100項目以上あるデータなので、手作業は禁止です。

【表A】
(空白) 国語 算数 理科
山田 100 80 60
鈴木 80 90 70
佐藤 60 100 80
【表B】
山田 国語 100
山田 算数 80
山田 理科 60
鈴木 国語 80
鈴木 算数 90
鈴木 理科 70
佐藤 国語 60
佐藤 算数 100
佐藤 理科 80

つまりはピボットテーブルの逆変換を行いたいのですが、
【表A】はピボットテーブルで作成されたわけではありません。
「ポビットテーブル」というソフトが昔あったようですが、
現在見当たらないので、お尋ねしています。
よろしくお願いします。

●質問者: iikai
●カテゴリ:ビジネス・経営 コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●100ポイント ベストアンサー

ピボットテーブルを使うのが早いと思います

まずは【表A】の(空白)のセルに氏名と入れます
ピボットテーブルでは、下記のように配置します
・行のフィールド 氏名を配置します
・列のフィールド 何も配置しない
・データアイテム 国語、算数、理科を順に配置します

出来上がったピボットテーブルをコピーして、
新しいシートに「形式を指定して貼り付け」で「値」を貼り付け、
残っている「合計:」というような文字を置換で一気に消し去ってしまえば、
ほぼお望みのものが出来るかと思います
ただし、最終結果の並び順に関しては、別途考慮が必要かもしれません


うぃんどさんのコメント
データベースクエリを使うほうが確実でシンプルかもしれませんが、 SQLの取り扱いはマクロより面倒かもしれません >|| SELECT `Sheet1$`.氏名, '国語' , `Sheet1$`.国語 FROM `Sheet1$` `Sheet1$` UNION ALL SELECT `Sheet1$`.氏名, '算数', `Sheet1$`.算数 FROM `Sheet1$` `Sheet1$` UNION ALL SELECT `Sheet1$`.氏名, '理科', `Sheet1$`.理科 FROM `Sheet1$` `Sheet1$` ||<

うぃんどさんのコメント
ピボットをコピペすると空白があって困る場合は、もう一手間かけます |* |*A|*B|*C|*D| |*1| |氏名|データ|計| |*2| |佐藤|国語|60| |*3| | |算数|100| |*4| | |理科|80| |*5| |山田|国語|100| |*6| | |算数|80| |*7| | |理科|60| |*8| |鈴木|国語|80| |*9| | |算数|90| |*10| | |理科|70| 上記であればセルA1に以下の式をいれて、A2以下にコピペします =IF(ISBLANK(B2),A1,B2)

うぃんどさんのコメント
誤 セルA1に以下の式をいれて、A2以下にコピペします 正 セルA2に以下の式をいれて、A3以下にコピペします 何度も失礼

iikaiさんのコメント
なるほど、若干加工の手間はかかりますが、分かりやすく間違いの少ない方法を教えて頂き、ありがとうございました。加工方法の追記にも感謝します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ