• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL_VBA 縦方向のデータを横方向に更新について)

EXCEL_VBA縦方向のデータを横方向に更新する方法

このQ&Aのポイント
  • この質問では、EXCELのVBA処理を使用して縦方向に入力されたデータを横方向に更新する方法について困っています。
  • No.を基準としてデータを読み込み、同じNo.の値を列方向に貼り付ける処理がうまく動作しないという問題が発生しています。
  • 指示された更新前の状態の例と更新後の状態の例を示しており、データ量が大量で手動では作業が行き詰まっているとのことです。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

ピボットテーブルがシンプルかもしれませんね A列挿入して =COUNTIF(B$2:B2,B2) 下フィル 範囲指定して、「データ」「ピボットテーブル」でウィザードに従って ピボットテーブル(右クリックして表示)のフィールドの設定で合計を選択

noname#65723
質問者

お礼

ピボットテーブルで縦方向のみで悩んでいました A列に式を挿入してピボットの操作をするとこれもできます。 もう一工夫が必要ということだったんですね。 マナー違反の投稿にもかかわらず  続けてのご教授、まことにありがとうございました 助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

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) 右フィル、下フィルでは エラー処理は、別途考えてください。

noname#65723
質問者

お礼

早速のご回答ありがとうございます。 エクセルの関数で出来るとは全く思いつきませんでした。 今実際やってみたところ、出来ました。 手動でコピー&ペースト繰り返しで対処していたので とても助かりました。 質問文が足らずマナー違反でご迷惑をおかけしました。

全文を見る
すると、全ての回答が全文表示されます。
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

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

noname#65723
質問者

補足

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで横を縦にする

    Excelで例えば次の文字列があったとします。(1セルに一文字だとおもってください) ABCDE FGHIJK 他のセルにA→Eの順で縦にコピーするには、形式を選択して貼り付け→行列を入れ替えるでできます。 では他のセルにK→Fの順で縦に貼り付けるにはどうすればいいのでしょうか。 よろしくお願いします。

  • VBA 縦のデータを横にするコード

    VBA初心者です。 縦に複数の顧客が存在して、その顧客の出荷日をセル一つにまとめたいのですが、全くがやり方が わかりません。すいませんが、教えて頂けると幸いです。 【例】 ■シート1    A列   B列 1  番号  出荷日 2  005   2014/5/1 3  001   2014/5/5 4  003   2014/5/23 5  003   2014/5/14 6  001   2014/5/3 7  005   2014/5/8 8  001   2014/5/16 9  001   2014/5/4 ↓↓↓↓↓↓↓↓↓↓ ■シート2    A列   B列 1  001    2014/5/5、2014/5/3、2014/5/16、2014/5/4 2  003    2014/5/23、2014/5/14 3  005    2014/5/1、2014/5/8 上記のように処理することは可能でしょうか。 宜しくお願い致します。

  • エクセルで文字列を縦方向にした場合、数字のみ横方向にする仕方

    エクセル2007を使っていますが、文字列の方向を縦にした場合、数字も同時に縦書きになってしまいます。(例えば6月25日と記入し文字列を縦方向にした場合、2と5が横ではなくて縦に一列になってしまう。) この場合、2と5だけ横方向であとは縦方向にするにはどうすればいいですか?

  • Excel縦方向オートフィル時に横方向変化させたい

    Excelの数式で、例えば、=A1の数式がセル内にあるとして、そのセルを縦方向にオートフィルした時、 =A1 =A2 =A3  •  •  • になりますが、それを =A1 =B1 =C1  •  •  • の参照になるようにしたいのです。 つまり、縦方向オートフィルで、横方向のオートフィルが効いたように値が参照されるようにさせたいということです。 セル関数を駆使すれば出来そうなのですが、可能でしょうか? どなたかご教授いただけますと幸いです。 よろしくお願い致します。

  • 【Excel】 改ページ箇所を設定するVBA

    こんにちは B列 aa aa aa aa bb bb bb ・ ・ ・ となっています。 印刷のときにB列の値が変わるところで改ページしたいと思います。 手動で設定しかけましたが、数百ページあるので、手動では大変です。 VBAで設定可能と言うことなのですが、VBAは初心者です。 設定方法を教えて頂けないでしょうか。 Excel2003です。

  • 列(横方向)の並べ替え

    エクセルなんですが 縦方向の並べ替えはなんとかできますが 横方向の(4列の) 小さい順又は大きい順の並べ替えができません 初心者です よろしくお願いします。

  • 2010 Excel VBA 測定結果を貼り付ける

    VBA初心者です。 どなたか教えていただけませんか? 測定した結果を各シート別に貼り付けを行いたいのです。 シート名は「データ」で、貼り付けたいデータはG列とI列。 貼り付けたいシート名は1、2、3、・・・15まであります。 データをG列の8個分のデータで行列を入替えて貼り付け(E6~L6) I列も同様に8個分のデータを行列を入替えて貼り付け(E7~L7) ※シート1枚に行う作業はこれで終わりです。但し追記を行いますので基にデータが  ある場合は倍数分飛んで入力を行いたいです。(G列の場合E6,E8,E10,E12・・・、I列の場合E7,E9,E11,E13) マクロ開始時に貼り付けるシートを選択しその順番で各データの貼り付けを行いたいです。 データのG列、I列は連続データなので8個ずつのデータを選択したシート順に貼り付ける。 流れとしては マクロ開始→入力シートを選択→データから各シートへコピーペースト マクロ記録でやってみたのですがなかなかうまくいかず困っています。 大変申し訳ないですが教えて頂けないでしょうか? 知識はVBA入門編が理解できる程度なのでご指導宜しくお願いします。

  • エクセルのVBAでセルの貼り付け方向を指定する方法

    エクセルのVBAで、横方向に並ぶセルをコピーし、縦方向に張り付けるにはどうしたら良いのでしょうか? 1 2 3 4 5 6 この状態で並んでいるセル(A1:F1)をコピーして、 1 2 3 4 5 6 この様に(A1:A6)貼り付けたいのです。 よろしくお願い致します。

  • EXCEL2003 VBAについて

    EXCEL2003 VBAについて EXCEL2003で12個の同じ体裁の複数シートで構成されたブックがあります。 (1)シート1の[A1]に数値を入力するとシート名に文字列で構成された[E1]セルの内容を反映させる (2)シート2~12の[A1]セルにはシート1[A1]の値が入る (3)シート2~12にも[E1]の内容がシート名に反映される・・・はず (4) (1)処理時に自動的に(3)の処理が行われず、シート2~12に関しては、手動でA1をダブルクリックした後ESCキーでキャンセルし、シート名を更新しています。 しかしこの方法ですとこれをシート2~12全てでやらなければなりません。 (1)の入力だけで(2)を自動更新させる方法についてアドバイス頂けないでしょうか。 どうぞよろしくお願いします。 Sheet内スクリプト Private Sub Worksheet_Change(ByVal Target As Excel.Range) On Error GoTo ERR: If Target.Cells(1, 1).Address = "$A$1" Then Me.Name = Cells(1, 5) End If Target.Cells(1, 1).Select Exit Sub ERR: MsgBox "その名前には変更出来ません。", vbCritical + vbOKOnly, "ERROR" Resume Next End Sub

  • データを縦に並べる為に。

    QNo.2876302、QNo.2879608の質問をしたものです。 QNo.2879608の作成コードにおいて 横方向に並べていましたが これをB列、C列に最初のデータ群の最後の行の次に次のデータ群 を続けて・・・以下縦に長いデータとしたいのです。 QNo.2879608 の結果で行方向に伸びたデータをB,C列に縦にきれめなくつなげたいのです。 この場合は導入回数は400回程度平均になりますので65536列に並ぶことが可能になります。ユーザー関数でなら当方でも対応可能ですが、やはり行列で処理したいです。 コード例をお願いいたします。 図形的には点群の表示は同じ結果をえるはずです。左側のセルの余白 を利用したいのが質問の趣旨になります。

専門家に質問してみよう