プロが教えるわが家の防犯対策術!

EXCELの作業(VBA処理)で困っています。

このサイトでご教授いただけたらと思い投稿しました。

縦方向に入った値を No.を基準として横方向にコピーする作業です。

「No.」ごとに読み込んで 行列貼り付けするという処理ですが
”同一No.”を感知して 列方向に貼り付けが動作がどうにも思いつきません

システムの方に質問したらEXCELのVBAで容易に出来るということです。

データが大量のため手動で行き詰ってしまいました。
なにとぞよろしくお願いいたします。


※更新例は(1)の状態を(2)にするです。

(1)現在の状態
No.とそれに対応する値が入っています

No. │値
───────
1  │300
1  │4,000
1  │1
2  │2
3  │1,000
3  │15,000
4  │200
4  │450
5  │165,000
6  │0
6  │10
7  │150,000


(2)更新後の状態
No.をキーとし 同一No.の値を列方向に 貼り付け更新

No. │値1   │値 2  │値3  │
───────────────────
1  │ 300│ 4,000│ 1│
2  │ 2│ │ │
3  │ 1,000│ 15,000│ │
4  │ 200│ 450│ │
5  │ 165,000│ │ │
6  │ 0│ 10│ │
7  │ 150,000│ │ │

A 回答 (3件)

ピボットテーブルがシンプルかもしれませんね


A列挿入して =COUNTIF(B$2:B2,B2) 下フィル
範囲指定して、「データ」「ピボットテーブル」でウィザードに従って
ピボットテーブル(右クリックして表示)のフィールドの設定で合計を選択
    • good
    • 0
この回答へのお礼

ピボットテーブルで縦方向のみで悩んでいました

A列に式を挿入してピボットの操作をするとこれもできます。
もう一工夫が必要ということだったんですね。

マナー違反の投稿にもかかわらず 
続けてのご教授、まことにありがとうございました
助かりました。

お礼日時:2008/05/20 23:29

VLOOKUP関数ではダメですか?


Noが数値だとして、A列に1列挿入して
=COUNTIF(B2:B$2,B2)*1000+B2 下フィルしておきます。
同一Noごとに 1001 1002となると思います

別シートには
  1  2 ・・・
1
2
3
4
と準備しておいてB2に
=VLOOKUP(B$1*1000+$A2,Sheet1!$A:$C,3,FALSE)
右フィル、下フィルでは
エラー処理は、別途考えてください。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

エクセルの関数で出来るとは全く思いつきませんでした。
今実際やってみたところ、出来ました。

手動でコピー&ペースト繰り返しで対処していたので
とても助かりました。

質問文が足らずマナー違反でご迷惑をおかけしました。

お礼日時:2008/05/20 23:26

どうやらVBAのことはまったく知らないようですね。


この質問は、「作ってください」という内容ですよね。

『当サイトは、質問と回答の形式で会員の方同士の助け合いによる情報交換の場として運営しておりますが、他の会員に回答を義務づけ、あるいは何かを依頼してやってもらうというような場ではございません。従いまして、課題やレポートを解いたり作成したりする上での疑問点や、外国語の翻訳、プログラム作成時の疑問点などに関する質問について、課題文や条件のみを丸写しにした上で「この問題の回答を教えてください/翻訳してください」「これを作ってください」など回答者に丸投げで依頼するような質問は、削除・編集の対象とさせていただきます。
こういった質問については、ご自身である程度課題を解こうとしていただいた上で、疑問点や問題点、お困りの点を明確にして投稿いただきますようお願いいたします。』

ということなので、この質問は削除対象になります。

> システムの方に質問したらEXCELのVBAで容易に出来るということです。

その「システムの方」に聞くのが一番かと。

この回答への補足

すみません 言葉が足りませんでした

補足日時:2008/05/20 23:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!