• 締切済み

(Excel)複数列のデータを1列に

こんにちは. (1)のようなデータが20年分あり,(2)のように縦一列に変換したいのですが,よい方法はありませんでしょうか? 形式は同じですが,年によって行と列の数は変動します.シートは年毎です. 空白はブランクです.また,最終的にはブランクは削除します. No.1764958に類似する質問がありましたが,上手く使えませんでした. どうかよろしくお願い致します. (1) | 年月日 |A|B|C|・・・・ 1|2007/10/30|1|1|1| 2|2007/10/31| |1| | 3|2007/11/01|1| |1| 4|2007/11/02|1| | |   ・   ・   ・ ↓ (2) 1|2007/10/30|1|A| 2|2007/10/31| |A| 3|2007/11/01|1|A| 4|2007/11/02|1|A| 5|2007/10/30|1|B| 6|2007/10/31|1|B| 7|2007/11/01| |B| 8|2007/11/02| |B| 9|2007/10/30|1|C| 10|2007/10/31| |C| 11|2007/11/01|1|C| 12|2007/11/02| |C|   ・   ・   ・

みんなの回答

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

#02です =OFFSET($A$1,MOD(ROW(A1)-1,n),0) すみませんMOD関数のとじ括弧が抜けていました。上が正解です。

Wildlife01
質問者

お礼

うまく出来ました.OFFSETは使ったことがなく,とても勉強になりました.お忙しい中,ありがとうございました!

Wildlife01
質問者

補足

何度もすみません. ほぼ上手く出来たのですが,2列目だけ,一行上にずれてしまいます. もしよろしければ,もう一度返答いただけませんか? 自分には難しくて解決できずにいます.

  • tamago800
  • ベストアンサー率36% (4/11)
回答No.3

全体で何行くらいあるのでしょうか? あまり大量なら、マクロを使うのがベストです。 でももしマクロに抵抗があるなら、ピボットテーブルを使っても出来ます。ただ、若干手作業が発生しますが・・・。

Wildlife01
質問者

補足

回答ありがとうございます. n-junさんのところでもお伝えしましたが,1シートに1年分のデータが入っており,平均100行50列になります. マクロに抵抗はないのですが,自分で書き換えできないので,もしよろしければ結構なのですが,ピボットテーブルでの方法も併せて教えて頂けると大変助かります.あつかましいようで申し訳ありません.

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

元データのあるシートの任意のセルに次の式を貼り付けます。 式中の「n」はデータ最終行数に置き換えてください。あるいは「COUNTA($A:$A)-1」に置き換えても良いかもしれません。 (シートがどのようになっているか分からないので確実とは言えません) =OFFSET($A$1,MOD(ROW(A1)-1,n,0) その右隣のセルに同様に以下を貼り付けます。 =OFFSET($A$1,MOD(ROW(A1)-1,n)+1,INT((ROW(A1)-1)/n)+1) さらにその右隣に以下の式を貼り付けます。 =OFFSET($A$1,0,INT((ROW(A1)-1)/n)+1) 後はこれらの式を下方向にコピーします。

Wildlife01
質問者

補足

すばやい回答ありがとうございます. =OFFSET($A$1,MOD(ROW(A1)-1,n,0)のnを変えて式を入れてみましたが,関数に対して引数が多いといわれてしまいました.自分でもこれを参考にさせていただいて考えてみます.ありがとうございます!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>(1)のようなデータが20年分あり 行数と列数はどの位あるのでしょうか? >No.1764958に類似する質問がありましたが,上手く使えませんでした. マクロを応用できなかったのでしょうか? 或いはマクロを使った事がないと言う事でしょうか?

Wildlife01
質問者

補足

回答ありがとうございました. >マクロを応用できなかったのでしょうか? >或いはマクロを使った事がないと言う事でしょうか? マクロの知識はないのですが,似たケースだったのでそのまま試してみたといった状況です. データは1シートに1年分入れており,平均100行50列ぐらいになります.