• ベストアンサー

excelでの行列データの並び替え

excelで表形式のデータの並び替えをおこないたいのですがいい方法が思いつきません。 どなたか教えて下さい。 具体的には 元のデータは以下の様なフォーマット a b c d e f g h i これを並び替えて a b c d e f g h i としたいということです。 元データの列数は決まっていますが 行数は任意です。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 今仮に」、A1セルに「abc」、A2セルに「 def」、A3セルに「 ghi」と入力されていて、B1:B9のセル範囲に a b c d e f g h i と表示させるものとした場合には、B1セルに次の関数を入力してから、B1セルをコピーして、B2以下に貼り付けて下さい。 =MID(A$1&A$2&A$3,ROWS(B$1:B1),1)

Kasaoka-Taroh
質問者

お礼

なるほどいい方法ですね。ありがとうございます。

その他の回答 (4)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

回答No.1の追加です。 提示のデータが下記のようにA列のみに配置されているときは文字列の長さが一定でないと処理できません。 A1="abc" A2="def" A3="ghi" B列へ1文字ずつ切り出すには次の数式になります。 B1=MID(INDEX(A:A,INT((ROW()-1)/3)+1,1),MOD(ROW()-1,3)+1,1)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.4

E1: =OFFSET(A$1,(ROW(A1)-1)/3,MOD(ROW(A1)-1,3))

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

質問の表現がまずい。2様に取れる。私は下記ではないかと思って回答する。 ーー 本件は「並べ替え」というよりは、表データの「組換え」が適当かと思う。 「並べ替えは」エクセルでは「セルの値」について(よって)、あるルールに並べることを言うと思う。本件はセルの来る(収まる)位置を問題にしているのだろう。 もし私が間違っていたら無視して。 しかし下記も質問者に取って勉強になると思うよ。 ーー データ例 A列 B列 C列 a  b  c d  e  f g  h  i j  k l m n G1に=INT((ROW()-1)/3)+1 H1に =MOD(ROW()-1,3)+1 と入れて下方向に式を複写。 結果 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 4 1 4 2 4 3 5 1 5 2 ・・ のようになる。これは仕組みの理解のための作業列です。 これは最終結果を出す列での、行のデータは、元データのセル範囲の何行の、何列から持ってくるかを示す。 最終結果はF列に出すとして F1に =INDEX($A$1:$C$100,G1,H1) と入れて、式を下方向に複写する。 結果は a b c d e f g h i ・ のようになる。 G,H列を使っているが、仕組みを納得すれば、これらの式を、F1の式の第2引数と、第3引数に、先頭の=を省いてコピーして貼りつければ、G,H列は不要になる。 後は式の複写は余分な業までおこたたっとき、空白にするたの、IF文をかぶせる必要があるが、、複雑になるので略。上の例の$C$100の100はデータ数に合わせて修正すること。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>元のデータは以下の様なフォーマット A1="abc" A2="def" A3="ghi" または A1="a",B1="b",C1="c" A2="d",B2="e",C2="f" A3="g",B3="h",C3="i" のような配列なのですか? 後者の場合は次の数式で良いでしょう。 =INDEX(A:C,INT((ROW()-1)/3)+1,MOD(ROW()-1,3)+1)&""