エクセルの表データを一列のデータに変換するプラグインがあったと思うのですが

ご存知のかた教えてください。こんなイメージです。

**|AA|BB|CC|
aa|01|03|05|
bb|07|00|02|

上記を下記の様に変換したいのです。

aa AA 01
aa BB 03
aa CC 05
bb AA 07
bb BB 00
bb cc 02

プラグインでなくてもできる方法があればその方法でもかまいません。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/03/05 22:24:44
  • 終了:--

回答(4件)

id:northapple No.1

northapple回答回数85ベストアンサー獲得回数62006/03/05 23:26:02

ポイント18pt

http://www.atmarkit.co.jp/fwin2k/win2ktips/359pivot/pivot.html

@IT:Windows TIPS -- Tips:ピボットテーブルでクロス集計を行う

ご質問の件はピボットテーブルのことと思われます。質問の例では、ピボットテーブルで、**を行のフィールドにドラッグし、AAとBBとCCをデータアイテムにドラッグすると、得られると思います。URLも参考にしてみてください。

id:tk378mx

ありがとうございます。

ピボットテーブルの機能を理解していませんでした。ですが教えて頂いた方法では下記の様に左端の列に空白ができてしまいます。データーが膨大にあるのでここにもコピーペーストするのも大変です、なにかよい方法は無いでしょうか?

aa AA 01

BB 03

CC 05

bb AA 07

BB 00

CC 02

2006/03/06 08:25:23
id:taknt No.2

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/03/06 09:18:50

ポイント18pt

http://mis.edu.yamaguchi-u.ac.jp/kaisetu/note_text/5/sanko/7-2.h...

7-2. コピーの貼り付け(形式を選択して貼り付け)について

あんまりないよでしたら、

AAから02までを選択してコピーし、

「形式を選択して貼りつけ」で行列を入れ替えるとしたらいいでしょう。

それで

AA|01|07

BB|03|00

CC|05|02

となったら、それぞれをコピーすればいいでしょう。

id:tk378mx

ありがとうございます。

データの件数がかなりの量ですので、この方法ではきびしそうですが、参考になりました。

2006/03/06 22:46:47
id:rikuzai No.3

りくっち回答回数1366ベストアンサー獲得回数1412006/03/07 15:28:06

ポイント30pt

http://www2.moug.net/bbs/exopr/

Excel���ʋ@�\ Q&A�f����

northappleさんのピボット集計後の空白についですが、数式で簡単に埋めることが出来ます。


特にシート数など制限がなければ、

ピボット集計した表をコピーして別シートに「形式を選択して貼付け」から「値」を選んで貼付けをします。


1.A列に空の列を一列挿入します。

2.下記のセルに数式を入力します。

A2=B2

A3=IF(B3=””,A2,B3)以下コピー

3.A列をコピーしてから再度A列に値コピーをして数式を取り除いた値だけのデータにします。

4.B列を削除します。


以外には先にaa AAに相当する列の全てのパターンを先に取り出し、

値の部分を配列関数で取り出す方法がありますが、

データ量が多い場合はかなりファイルが重くなるのであまりお勧めできません。

id:tk378mx

ありがとうございます。できました!

前回のコメントではスペースが自動的に削除されてしまい、表が再現できて居なかったにも関わらず完璧な回答です。

ありがとうございました。

2006/03/07 23:26:16
id:northapple No.4

northapple回答回数85ベストアンサー獲得回数62006/03/07 17:50:15

ポイント30pt

http://www.juno-e.com/excel/macro/macro1.htm

EXCEL マクロを使ってみる・貼り付け

はじめに以下のマクロをExcelに登録して下さい。登録はURLを参考にしてみてください。


Sub 自動入力()

Dim largeAA As Integer ’AA,BB,・・・・・の個数の変数

largeAA = InputBox(”AA,BB,・・・・・の個数を入力してください”)

Dim smallaa As Integer ’aa,bb,・・・・・の個数の変数

smallaa = InputBox(”aa,bb,・・・・・の個数を入力してください”)

Dim label


For j = 1 To smallaa

For i = 1 To largeAA

If Cells(largeAA * (j - 1) + i, 1).Value <> 0 Then

label = Cells(largeAA * (j - 1) + i, 1)

Else

Cells(largeAA * (j - 1) + i, 1) = label

End If

Next i

Next j

End Sub


この図のようにもとの表を選択してピボットテーブルの作成を開始します。

この図のように各項目をドラッグします。

この図のようにピボットテーブルが完成します。この図ではピボットテーブルのオプションで行と列の総計を非表示にしています。

この図のように、ピボットテーブルから表のみをコピーして新規のワークシートにコピーしてください。

メニュー→ツール→マクロから先ほど登録した自動入力マクロを実行してください。

この図のようにダイアログが表示されますが、数字でAA,BB,...の個数(ここでは3)を入力します。

また表示されるダイアログではaa,bb,....の個数を数字で入力します。

するとこのように左端の空欄だったところに、aa,bb,...が自動で入力されていると思います。まとめますと、ピボットテーブルで表を作成して、Excel-VBAマクロで空欄部分に自動で入力する、という流れになっています。マクロについては10×10ぐらいの表でいろんなパターンで軽く検証してみたのですがマクロの実行に際しましてはご自身でも確認してみてください。

id:tk378mx

ありがとうございます。こう言う方法も有るんですね、これはちょっと自分には難しく感じてしまいますが、今度勉強を兼ねて試してみたいと思います。

お陰様で問題は解決しましたので終了させて頂きます。

ありがとうございました。

2006/03/07 23:30:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません