質問: エクセルシートの票データの置き換えについて、 エクセルのシートに (a1)から(d50)まで一覧表があり、それぞれ200個のセルに文字が入力されています。 これを別のシートに縦一列に並び替えたいのですが、 a1=(a1) a2=(b1) a3=(c1) a4=(d1) a5=(a2) a6=(b2) a7=(c2) a8=(d2) a9=(a3) a10=(b3) ・ ・ ・ a199=(c50) a200=(d50) 出来れば簡易言語で、それで無理ならマクロでも結構です。 よろしくお願いします。
回答: >簡易言語 この言葉はエクセルでは使わないと思います。関数や関数式による 解法でしょうか。昔はpipsとか、epocalcjとか色々もてはやされましたが。 >マクロ エクセルvbaです。アクセスと違って、マクロは特別なものはなく、エクセルvbaです。「マクロの記録」で使われているために、よく使われていますが。 ーーーー 本題 関数式による解法。 各列の最下行がばらばらだと、関数では難しい。そろっているとして、 例として、簡単のため、7行の表データにしました。 sheet1の a2:d8(a1:d7ではないです、注意。式が変わるので) a-d列以外の列にたとえばf列以外に f2に =index($a$2:$d$8,mod(row()-2,7)+1,int((row()-2)/7)+1) と入れて、式をした方向に複写 1 2 3 4 5 6 7 8 9 10 11 12 13 以下略。 50行なら =index($a$2:$d$51,mod(row()-2,50)+1,int((row()-2)/50)+1) sheet2に作るなら a2などに =index(sheet1!$a$2:$d$51,mod(row()-2,50)+1,int((row()-2)/50)+1)