• ベストアンサー

データの並び替え

Excel2000を使っています。 まず見てください!   A  B C  D E 1  あ   あ い う 2  い   え お か 3  う   き く け 4  え   こ 5  お 6  か 7  き 8  く 9  け 10 こ 上に書いたように、A列のように並んでるものを C,D,E列のように並び替えたいのですが、 =INDIRECT("A"&ROUNDUP(ROW(1:1)/1,0))で いろいろ数字を入れ替えてやってみたのですが、うまくいきません。 数が多いので、ずらっとコピーしたいのです。上記の関数も教わったもので、それぞれの単語の意味を理解してないので応用も利きません。 どなたか知恵をお貸しください。 ついでに、高度な関数の覚え方も教えていただけたらありがたいです。 VLOOKUPやHLOOKUPなど一つ一つは使えても、組み合わせるとまったくわからなくなってしまいます。 どうかよろしくお願いします。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.3

[No.1回答に対するお礼]に対するコメント、 断言しておきますが、貴方の質問は「低レベル」どころか「高レベル」です。 》 関数の意味を理解するまでには至りません… 理解できない式に遭遇したときが質問(勉強)するチャンスです。放置しておくと何時まで経っても(全く応用が出来ない)初心者かと。

no---bu
質問者

お礼

ご丁寧にありがとうございます。おかげさまで希望が沸いてきました。 これからも、いろいろな壁にぶつかると思いますが、質問しながら勉強を重ね、回答する立場になりたいと思います。 本当にありがとうございました。

その他の回答 (2)

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

=INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2))) INDIRECT関数は、指定したセル番地の値を返す関数です。 =INDIRECT("A"&1) でA1セルの値が求められます。 INDIRECT関数を使って、C1セルにA1セルの値を、D1にA2の値を表示するのですが、 C1では1、D1では2と異なった数値を導き出さなければ成りません。 COLUMN関数を使うと、何番目の列か知ることが出来ます。 C1で =COLUMN() と式を入力すると「3」、D1では「4」という数値が得られます。 それぞれの数値から「2」 を引けば、「1」と「2」となるので、C1セルに =INDIRECT("A"&COLUMN()-2) と式をいれ、D1、E1にもコピー&ペーストします。 さて、2行目以降の場合です。 C2にはA4の、C3にはA7の値を持ってくるために、「4」と「7」の数値を取り出します。 C2で「1×3+1」、C3で「2×3+1」が得られれば出来そうです。 ROW関数は、何番目の行であるかを示します。 C2セルに =ROW() と式を入力すると「2」、C3では「3」となります。 =(ROW()-1)*3+(COLUMN()-2) で、C2セルでは「4」、C3セルでは「7」が得られます。 これをINDIRECT関数に組み込みます。 C1セルに =INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2))) と入力し、C1セルのフィルハンドルをE1までドラッグします。 そのままE1セルのフィルハンドルを下方向にドラッグします。 A列が空白の場合、「0」が表示されるのを避けるには、 IF関数で分岐します。 =IF(INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2)))="","",INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2)))) または、 =IF(INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2)))<>"",INDIRECT("A"&((ROW()-1)*3+(COLUMN()-2))),"")

no---bu
質問者

お礼

ご丁寧にありがとうございました。解説文をよく読み、式を理解することによって応用ができるようになると思います。

noname#204879
noname#204879
回答No.1

↓下記「参考URL」を参照されたい。 それは6列のケースだけど、3列場合に応用するにはどうしたら良いか分からない場合は、何処が不明かを教えてください。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2173662
no---bu
質問者

お礼

ありがとうございます。 できました! =OFFSET(list,(ROW(1:1)-1)*6+COLUMN(A:A)-1,0,1,1) 関数の意味を理解するまでには至りませんが listの部分を$A$1にして、6を3に変えたら解決しました。 今後も低レベルな質問をすることがあるかもしれませんが 面倒見ていただけたらありがたいと思います。 本当にありがとうございました。

関連するQ&A