• ベストアンサー
  • 困ってます

Excel VBAで列を行に変換するには

不特定多数の行数(百列以上)と列数(千列以上)を持ったデータを以下にある結果1を結果2のように列と行を置換したいのですがどうしたらよろしいでしょうか? もしよろしければ、プログラムを教えていただけたら助かります。 よろしくお願いします。 ///////////結果1//////////////////// A1 B1 C1 →不特定の列数 A2 B2 C2 A3 B3 C3 ↓ 不特定の行数 ///////////結果2/////////////////// A2 A2 A3 B1 B2 B3 C1 C2 C3

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1161
  • ありがとう数3

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

  • ベストアンサー
  • 回答No.1

プログラムを使わなくても「範囲のコピー」「形式を選択して貼り付け」で、[行列を入れ替える]チェックをOnというのがありますが。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お返事ありがとうございます。すいませんが今回はVBAで自動でやるのが目的ですので、プログラムで書きたいと思っています。

関連するQ&A

  • エクセルで、異なる列のデータを、ひとつの列に、ある一定の規則でまとめる方法、を、教えて下さい。

    質問させて頂きます。 A1      A2      A3      ~      A30      B1 B2 B3 ~ B30 C1 C2 C3 ~ C30 A、B、C列に、異なるデータ(関数)が30行まで入っています。 これらのデータをひとつの列にまとめたいのですが、 A1 B1 C1 A2 B2 C2 A3 B3 C3 ~ A30 B30 C30 上記のように、ABCの1行目、ABCの2行目、といった感じに 並び替える方法をご存知でしょうか? ちなみに、それぞれの列に入っているデータは「CONCATENATE関数」です。 「値」ではなく、あくまでも「関数」のまま並び替えたいと思います。 宜しくお願い致します。

  • エクセルで行数の異なる2つの列の数値を新しい列にコピーする方法

    はじめまして。 エクセルで質問があります。 A列に数値データ、B列に0 or 1のデータがあります。 Sum(B:B)=A列の行数です。 このデータを、C列に1のときはA列のデータを1行下にコピー、0のときは""にしたいと考えております。 結果C列はB列を同じ行数 if文でC1セルに =if(B1=1,A1,"") と打つと、B列に0が入った途端、A列の数値が進みすぎてしまいます。 B列=0のときA列を進まなくする方法はあるのでしょうか? たとえばB1=1, B2=0, B3=1のとき、C3にはA2の数値を入れたいのですが、A3になってしまいます。 よろしくお願いいたします。

  • Excel n行毎の合計数値

    Excelで2行毎、できればn行毎に合計値を求めるセルを作りたいのです。 A1:A10に{1,2,3,,,,}と値が入っているとして、B1から B1=A1+A2 B2=A3+A4 B3=A5+A6 というふうになり、B1=3,B2=7,B3=11,,,と1行毎に合計する範囲がズレていくような列を作るには どうすればいいでしょうか? C1=A1+A2+A3 C2=A4+A5+A6 C3=A7+A8+A9 となっていくような列を作る必要も出てきそうなので、 n行合計ずつ以外でも出来る方法をお願いします。

その他の回答 (1)

  • 回答No.2
  • bin-chan
  • ベストアンサー率33% (1403/4213)

マクロの記録でできると思いますが、コメント付きコードは以下のとおり。 Ctrl+Endで、不特定であっても行・列共に最大値(最終)セルを選択できます。 Ctrl+Shift+Endで、最大値(最終)セル「まで」を選択できます。 現在のデータがSheet1にあるとして、行列置換後のデータをSheet2に置くとします。 'コピー元を選択する Sheets("Sheet1").Select Range("A1").Select Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 'クリップボードへコピーする Selection.Copy 'コピー先を選択する Sheets("Sheet2").Select 'クリップボードからコピー(ペースト)する   ’Transpose:=Trueがミソ。形式を選択して貼り付けの行列入れ替え Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お返事ありがとうございます。’Transpose:=Trueですね! 確かにこれなら、1セルずつを置き換えさすプログラムよりも短かく、短時間の処理でできますね。 参考になります。

関連するQ&A

  • エクセルで二つの列を一つの列にコピー

    A列とB列を、まとめてC列に以下のようにコピーしたいのですが。 C1にA1 C2にB1 C3にA2 C4にB2 C5にA3 C6にB3 ・・・ ・・・ C99にA50 C100にB50 一括して行う方法を教えて頂きたいのですが。 よろしくお願いします。

  • Excel2000で連続データの空白行を挿入したい。

    Excel2000で連続データの空白行を挿入したい。 A1=B1+C1 A2=B2+C2 A3=B3+C3 (あと続く) と連続データになっているものに空白行を2行入れる方法を教えてください。 結果的に下記のようにしたいのです。 A1=B1+C1 A2=空白 A3=空白 A4=B2+C2 A5=空白 A6=空白 A7=B3+C3 (あと続く) ジャンプ機能を使うとできた気がするのですが・・・。 よく覚えていなく、わかりません。 どなたか教えてください。 よろしくお願いします。

  • 行を列で参照する

    Sheet1に横6列で並んでいるデータがあります。 列は6列固定で、行はその時によって変動がありますが、少ない時でも500行はあります。 それを、 Sheet2のA列に参照させたいのです。 Sheet1 Sheet2 A1 →A1 B1 →A2 C1 →A3 D1 →A4 E1 →A5 F1 →A6 A2 →A7 B2 →A8 C2 →A9 . . . という感じに表示させたいです。 よろしくお願いします。

  • エクセルでこんな並べ替えできますか?

    A,B,C,D列に次のような文字列が入っていたとします。 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D2 これをどこかの列に次のように並べ替えたいのですが。 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 実際は各行が100以上ありますし、列の数も場合により変ります。 よろしくお願いします。

  • 【エクセル】特定の文字列を含むセルを検索する方法を教えてください

    エクセルで以下のようなことを行いたいのですが、どの様な方法で行ったらよいのかわかりません。 どなたか詳しい方がいらっしゃいましたらお教え下さい。 (1)sheet1のA列に町レベルまでの住所が入っています。 (例)A1 a1県b1市c1町    A2 a2県b2市c2町    A3 a3県b3市c3町   (以下続く) (2)sheet2のA~D列にエリアで分かれた複数の市のリストがあります。 (例)A1 北エリア/B1 東エリア/C1 南エリア/D1 西エリア    A2 n1市  /B2 e1市  /C2 s1市  /D2 w1市    A3 n2市  /B3 e2市  /C3 s2市  /D3 w2市   (以下続く) (3)sheet2の2行目以降にある各市の名称でsheet1の"b市"に検索をかけ、それがsheet2の1行目にある何エリアかを区分し、その結果をsheet1のB列に反映する。 (例)A1 a1県b1市c1町/B1 北エリア  ⇒ b1 = n2 など    A2 a2県b2市c2町/B2 東エリア  ⇒ b2 = e3 など    A3 a3県b3市c3町/B3 西エリア  ⇒ b3 = w256など   (以下続く) 今までは置換機能やフィルタ機能を用いてまずは"b市"をより分けた上で手作業を行ってきたのですが、時間がかかるので関数もしくはマクロで出来るようにしたいと考えています。 拙い説明で恐縮ですがお分かりになる方がいらっしゃいましたら是非ともお教えいただければと思います。よろしくお願いします。

  • エクセルで、入力数字を自動的に代入し結果表示させたい

    入力した数字を自動的に代入し、その結果をそれぞれ表示させるにはどうしたらよいのでしょうか。具体的には      A列         B列          C列 1行    10          20          A1またはB1を引っぱって表示 2行    30          40          C1がA1のときA2、C1がB1のときB2を表示 3行   C3結果表示   C3結果表示   C1+C2の計算式 A1、A2、B1、B2は手入力します。 C1でA1が代入された場合C2にはA2が代入され、C3はC1+C2を計算し、その結果40をA3に表示させる。 また、C1でB1が代入された場合C2にはB2が代入され、C3は計算結果60を表示させる。 というようにしたいのです。C1、C2、A3、B3にはどのような計算式を入れればよいのか教えてください。

  • Excelでの計算

    次のような計算は出来るのでしょうか。  | A | B | C | ---------------------- 1| a1 | b1 | c1| ---------------------- 2| a2 | b2 | c2| ---------------------- 3| a3 | b3 | c3| ----------------------  - - - - - - - ---------------------- n| an | bn | cn| というときに c1=a1+bn c2=a2+b_n-1 c3=a3+b_n-2 cn=an+b1 という値がCの列に出るような操作があれば教えてください。

  • Excelで参照した文字列の表示形式の変更

    Excelの操作にうといので、ご存知の方に教えて頂きたいのですが、   A  B  C 1 1  7  =A1+B1 2 2  8  =A2+B2 3 3  9  =A3+B3 と各セルに入力をし、表示形式を00にして   A   B  C 1 01  07  08 2 02  08  10 3 03  09  12 と、表示させています。 D列に   D 1 =A1&"+"&B1&"="&C1 2 =A2&"+"&B2&"="&C2 3 =A3&"+"&B3&"="&C3 と入力たら表示が   D 1 1+7=8 2 2+8=10 3 3+9=12 となります。 これを、   D 1 01+07=08 2 02+08=10 3 03+09=12 と表示させたいのですが、やり方がわかりません。 どなたか、ご存知の方は教えてください。 よろしくお願いします。

  • エクセルで単語帳を作り、複数セルで並べ替えをしたい

    A1 increase B1 動詞 C1 増える A2 beautiful B2  形容詞 C2 美しい A3 guarantee B3 名詞 C3 保証 ・ ・ ・ というように、単語帳を作り、行単位で、アルファベット順や品詞別に並べ替えたいのですが、 どのように設定すれば良いのかどなたかわかる方、教えてくださると嬉しいです。 上の例で言うと、 アルファベット順に A2B2C2 ↓ A3B3C3 ↓ A1B1C1 と言った具合です。単純にA列のみをアルファベット順に並び変えることはできるのですが、 行単位ではどうするのかわからずに困っています。

  • Excel 範囲内で条件を満たす異なる列の合計

    範囲内で条件を満たすセルで、異なる列の値を合計したい。 A1からA5に{10,20,30,40,50}という値が B1からB5に{0,1,2,3,4}という値が C1からC5に{5,6,7,8,9}入っている事とします。 A1:A5の範囲で複数の条件をつけます。 B列ではA列のセルの値が15<A<35となる、A2とA3と同じ行であるB2とB3の値 C列ではA列のセルの値が25<A<45となる、A3とA4と同じ行であるC3とC4の値 全部でB2,B3,C3,C4のセルの値を合計を返すセルを作成したい。 この場合目的のセルが返す値は1+2+7+8で18となる。 補助行を作ってでも構いませんので、このような加算が可能とするセルの作り方はないでしょうか。 Excel2000を使用しています。どうかよろしくお願いします。