• ベストアンサー

Excelでの並べ替え

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

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。 >横に3つずつ区切ってセルに入っています これはもしかして A列 B列 C列 A   B   C D   E   F という並びですか? だとすれば式は以下です =OFFSET($A$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3)) 具体的なセルの並びを書いていただくと回答する側も助かります

その他の回答 (4)

  • suekun
  • ベストアンサー率25% (369/1454)
回答No.5

マルチ側の正解を見ると、質問の解釈は合っていたようですが 確認せずに回答したので、数式が間違ってました^^; でも、マルチだし、もう一方で解決してるし良かった。

  • ikiss
  • ベストアンサー率43% (34/79)
回答No.4

QNo.2954452と全く同じ質問ですね。 マルチポストは禁止されてますよー。

dogs59
質問者

補足

 マルチですみません。あちらを投稿後、PCがハングアップして確認したら、アップされていなかったようなので。 同じ質問をしている人がいるなぁと思ったら私でした。誠に申しわけない。

  • suekun
  • ベストアンサー率25% (369/1454)
回答No.2

関数で処理して後に値で貼り付ける事を前提として、 対象の数値が   A  B  C 1 111 222 333 2 444 555 666 3 777 888 999 と並んでいるなら空白処理も含めて =IF(OFFSET($A$1,INT(ROW(A1)/3),MOD(ROW(A3),3))="","",OFFSET($A$1,INT(ROW(A1)/3),MOD(ROW(A3),3))) これを貼り付けたいセルの隣の列に一度入れて下にコピー その後本当の貼り付けたい範囲に値で貼り付けて下さい。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

A1セルからデータがあるとき、同じシートの適当なセルに以下の式を入れて下にコピーする =MID(OFFSET($A$1,INT((ROW(A1)-1)/3),0),MOD(ROW(A1)-1,3)+1,1) A1から始まっていないときは$A$1の部分だけを実際の開始セルに変更してください。(INTより後ろはさわらない!) 後は分解したデータをコピーして「編集」→「形式を選択して貼り付け」→「値」で値に変換するとよいでしょう

関連するQ&A

  • Excelデータを並べ替え

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

  • excelのセルの並べ替え。

    Excelの操作で迷っています。詳しい方の知恵を拝借できたらと思います。 以下のようにデータの入力されたセルが並んでいます(アルファベット1文字が1セルです)。 A B C D E F G H I J K 横に何セル並んでいるかは、行によってまちまちです。このようなデータが、数千行あります。これを、以下のように1列に並べ替えたいのです。 A B C D E F G 「行列を入れ替えてコピー」ではなかなかに大変なので、何か良い方法を探しています。よろしくお願いいたします

  • エクセルデータの並べ替えに関して

    エクセルデータの並べ替えに関して A列からH列まで数値が入っていて、それが8,000行くらいあります。(毎回変動します。) A1からH8000くらいのセルに値が入っています。 エクセルを縦長に使用しているので、このまま印刷をすると印刷面の右側半分以上が空白に なってしまいます。 マクロを利用して、これらの値を96行ごとに2列分けたいと思っていますが、どうやったら 良いか、教えていただけないでしょうか。 (マクロ実行前)--------------  A B C D E F G H 1 1 2 3 4 5 6 7 8  2 2 3 4 5 6 7 8 9 3 3 4 5 6 7 8 9 10 4 4 5 6 7 8 9 10 11 ・・・・・・ ---------------------------- のように下方向に数字が並んでいる場合、マクロを実行したら 次のようにしたいと思っています。 (マクロ実行後)--------------  A B C D E F G H (I) J K L M N O P Q 1 1 2 3 4 5 6 7 8(1行空き)97 98 99 100 101 102 103 104 2 2 3 4 5 6 7 8 9(1行空き)98 99 100 101 102 103 104 105 3 3 4 5 6 7 8 9 10(1行空き)99 100 101 102 103 104 105 4 4 5 6 7 8 9 10 11(1行空き)100 101 102 103 104 105 106 ・・・ 96 96 97 98 99 100 101 102 103(1行空き)192 193 194 195 196 197 198 199 97 193 194 195 196 197 198 199 200(1行空き)289 290 291 292 293 294 295 296 ・・・・・・ ---------------------------- (1)A1からH96までを切り取って、J1に貼り付ける。 (2)「(1)」で切り取って出来た空欄を削除して上方向にシフトする。 (3)A97からH192までを切り取って、J97に貼り付ける。 (4)「(2)」で切り取って出来た空欄を削除して上方向にシフトする。 といった操作を「切り取って出来た空欄を削除して上方向にシフトする。」という操作を しようとしたら上方向にシフトするデータがなくなるところまで続けたいと 思っています。

  • 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 と返って来る関数が欲しいです。

  • 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に入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

  • EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?

    EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか? 下記のようにならんだDATAがあります。   A列   B列  C列  D列  E列 (1行)2002/12/17 15240 15280 15220 15220 (2行) (3行) (4行) (5行)2002/12/18 15250 15250 15210 15210 (6行) (7行) (8行) (9行)2002/12/19 15220 15310 15220 15310 (10行) (11行) (12行) (13行)2002/12/20 15220 15260 15210 15230 (14行) (15行) (16行) (17行)2002/12/24 15300 15310 15270 15310 (18行) (19行) (20行) (21行)2002/12/25 15300 15340 15300 15600  . . . . . . . . . . . . . . . . . . . . . . . と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。   A列   B列 C列 D列 E列  F列 2002/12/17            15240                  15280                  15220                  15220 2002/12/18            15250                  15250                  15210                  15210 2002/12/19            15220 15310 15220 15310                   . . .                    といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。

  • エクセル関数の質問です。

    エクセルでセルA1=4の場合セルB2=セルD1、セルA1=5の場合セルB2=セルE1、セルA1=6の場合セルB2=セルF1というように、セルA1に数字を入力するとセルB2に反映するようなセルB2に入力する関数を教えて下さい。  セルA1には月(4月から3月)の数字(4~12、1~3)が入り、4月のときにはD列(D1)、5月のときにはE列(E1)、6月~3月にはF列(F1)~O列(O1)の数字が入ります。よろしくお願い致します。

  • Excelに関する質問です。

    Excelで x 1 2 3 4 5 6 7 8 9 y a b c d e f g h i と各セルに横に打ち込んだところを x y 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h 9 i と縦に打ち直したいのですが何か一発で変換できる方法ってありますか?

専門家に質問してみよう