• ベストアンサー

Excelデータを並べ替え

 いつもお世話になります。  急ぎで、以下のことをしたいのですが、Excelのマクロで何とかなりませんか? A B C D E F  このように300程の数字が、横に3つずつ区切ってセルに入っています。これを、 A B C のようにすべてA列に縦に並べ替えたいのですが。  申し訳ないですが、急ぐのでよろしくお願いします。

  • dogs59
  • お礼率77% (279/359)

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

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.2

A列からC列にデータがあるとしてE列に展開 Sub データを並べ替え() Dim MaxRow As Integer Dim wVal As Variant Dim wR As Integer Dim wC As Integer ' MaxRow = ActiveSheet.Range("A1").End(xlDown).Row wVal = ActiveSheet.Range("A1:C" & MaxRow) wR = 0 For wIx = 1 To UBound(wVal) For wCol = 1 To 3 wR = wR + 1 ActiveSheet.Cells(wR, 5) = wVal(wIx, wCol) Next Next End Sub (1) Alt+F11 (ツール -> マクロ -> Visual Basic Editor) (2) 挿入 -> 標準モジュール -> 上記のモジュールを貼り付けて実行(F5を押す)する

dogs59
質問者

お礼

本当に無理なお願いをしたのに、ありがとうございました。 すごく助かりました。

その他の回答 (2)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

No2 です。間違いました。 Sub データを並べ替え() Dim MaxRow As Integer Dim wVal As Variant Dim wR As Integer Dim wC As Integer ' MaxRow = ActiveSheet.Range("A1").End(xlDown).Row wVal = ActiveSheet.Range("A1:A" & MaxRow) wR = 0 For wIx = 1 To UBound(wVal) For wCol = 1 To 3 wR = wR + 1 ActiveSheet.Cells(wR, 5) = Mid(wVal(wIx, 1), wCol, 1) Next Next End Sub

dogs59
質問者

お礼

No.2で合っていると思いますが。 No.3でマクロを走らせるとおかしな数字の羅列になります。 1桁ずつ(1文字ずつ)に分解されるような。

  • skyresort
  • ベストアンサー率63% (21/33)
回答No.1

現状、セルA1にABC、A2にDEFとなっていて、 A1にA、A2にB、A3にC、A4にD・・・のようにしたいということでしょうか?

dogs59
質問者

補足

はい。説明が悪くてすみません。その通りです。 申し訳ないですが、本当に急ぐので、よろしくお願いします。

関連するQ&A

  • Excelでの並べ替え

     いつもお世話になります。  急ぎで、以下のことをしたいのですが、Excelのマクロで何とかなりませんか? A B C D E F  このように300程の数字が、横に3つずつ区切ってセルに入っています。これを、 A B C のようにすべてA列に縦に並べ替えたいのですが。  申し訳ないですが、急ぐのでよろしくお願いします。

  • テキストデータの並べ方を変える

    すみません、エクセル操作で困っております。 エクセルは全くの初心者です。 たとえばa,b,c,d,e,f,gと並んでいるtxtデータがあるのですが、 これをExcel2007で開くと a,b,c,d,e,f,gという感じで横方向のセルに従って開いてしまうのですが、 これを a b c d e f g という感じで縦に並べ替えて読み込ませる方法はありませんでしょうか?

  • エクセルでのデータの照合

    お世話になります。WindowsXPエクセル2003を使っているマクロ初心者です。 A B C D E F G 1 2 3  1 2 2 2 3 4  2 3 4 3 4 5  2 4 5 4 5 6  4 4 6 5 6 7  5 6 8 (左グループを元データ、右グループを加工データとします) A列とE列・B列とF列・C列とG列…という流れでデータを比較し、 元データと値の違うセルの色を変え、赤の太字にするようなマクロを作るには どのように書けばいいのでしょうか。 上記例の場合では、E3・F5・G2・G7のセルを変化したいということになります。 条件付書式でも試してみたのですが、なかなかうまくいかなかったため、 これからマクロに触れる機会も増えることを考えて、マクロで対応したく思い、 連絡させていただきました。宜しくお願いいします^^

  • Excelのマクロで()内の文字を抽出して書き出したい

    HTMLにあるテーブルの部分をコピペして貼り付けたExcelファイルがあります。 A~Cまでの3列が埋まっている状態で、D以降の列は空欄です。 C列に123(1112)というように、数字(数字)の記載になっている部分があります。 ()の前と、中は必ず半角数字で、桁は1桁~5桁までと幅広い状態です。 この()内の数値をD~F欄に書き出したいです(縦3列のものを、横3列として書き出したい) 数字(数字)という記載のセルは、必ず縦に3つ並んでいますが C列は膨大なセル数なうえに、数字(数字)という記述以外のセルも間に入っております(数字のみのセルか、空欄のセルです) 3つ並んでいる部分のみを探して、()内の数値を抽出し、D~F列に書き出すことは可能でしょうか? 書き出す場所は、3つ並んでいるC列の最初のセルの横のD~Fだと助かります。 (数字(数字)がC6~8にあった場合、D6~F6に書き出される) なお、数字(数字)というセルはC列以外にはなく、4つ以上縦に並ぶ事もありません。 さすがにこのような内容を実行するのは不可能でしょうか? もし可能でしたら、マクロを組んでいただきたいです・・・よろしくお願いします。

  • Excelでセルの英字を取得する関数

    Excelでセルの英字を取得する関数を教えて下さい。  A B C D E F G 1 2 3 4 5 6 7 エクセルは 横のヘッダにアルファベットが並んでいます。 縦のヘッダに数値が並んでいます。 縦のヘッダは =ROW() で求まります。 1行目で書けば1 5行目で書けば5 と返ってきます。 同じ様に、 =COLUMN()は A列で書けば1 E列で書けば5 と返ってきます。 A列で書けばA E列で書けばE と返って来る関数が欲しいです。

  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

  • エクセルでデータを反映させたい。

    エクセルで下記のことをしたいのですが、どのような方法が ありますか?   A B C D E (列) 1 1  a b c d 2 2  e f g h 3 3  i j k l (行) ・他シートにA1の「1」を入れると、B~E列のデータが反映する。 (A列の数字が個人を指すもので、それを選択すると付随するデータ(B~E)も反映するということなんですが・・・。 説明が下手で申し訳ないのですが、どなたか教えて下さい。

  • Excel ある条件で大量のデータを計算するには

    Excelで、縦は500行からそれ以上あるデータを下記の条件で計算を行いたいのですが、どのようにしたら宜しいでしょうか。 大量のデータであっても、簡単に計算が可能な方法をご教授頂けると有難いです。 1)A+Bでマイナス200で計算されたセル(Bが-200のセル)は、ここで完了するので、C'とD'とFでは計算しません。 2)Bが0で尚且つCが-200以下のセルのみ、A+Cで計算し、ここで完了するので、D'とFでは計算しません。 3)上記1)2)でマイナスされず、Dに-200の数値が入っているもののみ、A+Dで計算し、ここで完了するので、Fでは計算しません。 4)上記1) 2) 3)でマイナスされなかったセルのみ、FでE-Aの値を計算します(B’, C’, D’の数値は特に残す必要がなくFの結果だけ分かれば良いです)。Fでは、上記 1) 3)でマイナスされた場合-200の数値、また上記 2)でマイナスされた場合その数値(例えば-300、-500など)をセルに表示させる必要があります。 ※ BとDは、0か-200の値が入っています ※ Cは全て0かマイナスの値ですが、様々な数字が入っています ※ Eにも様々な値が入っています ※ B,C,Dには既に計算式が入っています 分かりづらく申し訳ありません。 具体的には、このように計算を行いたいです。  A    B   B’   C   C’    D   D’   E    F 15750 ー200 15550 ー450 15550  ー200 15550 15600 ー200 15680    0 15680 ー200 15480  ー200 15480 15550 ー200 15550 ー200 15350  ー30 15350    0 15350 15480 ー200 15460   0 15460  ー300 15160 ー200 15160 15260 ー300 15380 ー200 15180 ー130 15180 ー200 15180 15300 ー200 15550   0 15550 ー500 15050 ー200 15050 15000 ー500 15540   0 15540  ー20 15540 ー200 15340 15550 ー200 15530   0 15530  ー10 15530   0  15530 15630 100 15620   0 15620  ー80 15620   0  15620 15600 ー20 B’(上記1)の条件) C’(上記2)の条件) D’(上記3)の条件) F (上記4)の条件) Windows 8.1でして、Excelのバージョンは2013です。 大変申し訳ございませんが、解り易いご回答をお待ちしております。 どうぞ宜しくお願い申し上げます。

  • 9マスの計算問題

    縦3、横3マス(セルA1~C3)に1~9までの数字が1個ずつランダムに入っています。中心(セルB2)の数字は見ることが出来ますが、それ以外のマスはブラックボックスとなっていて何の数字が入っているか分かりません。 ただし、縦1列ずつの合計、及び横一列ずつの合計は 分かっています。その場合の隠された8マスにはどの様に数字が入るか?という問題です。 Excelの関数だけで(マクロを使用しないで)可能でしょうか? 問題例  A B C D 1 ○ ○ ○ 15 2 ○ 3 ○ 12 3 ○ ○ ○ 18 4 15 14 16 回答例  A B C D 1 9 4 2 15 2 1 3 8 12 3 5 7 6 18 4 15 14 16

  • エクセルの文字列の検索に関して

    また、エクセルに関しての質問です。 例えば  A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、  A B C D E 1あ 1   お 5 2い 2   う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

専門家に質問してみよう