質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

4回答

1679閲覧

[エクセルorスプレッドシート]複数行を縦に並べる方法

Dadada_c.

総合スコア59

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/06/12 20:09

#複数行を縦に並べる方法
1つづつコピペで縦横を入れ替えて貼り付け…を繰り返していたのですが。。
とてつもない量を置き換えなくてはいけなく、立ち行かずご質問させて頂きました。

イメージ説明

1行目にはAB列
2行目にはAB列
3行目にはABCD列

のように数値が2000行近く入っています。
これを写真K列のように1列に並べたいですがいい方法はないでしょうか…。。
丸投げで大変申し訳ございませんがご教示いただけますと幸いです。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

秀丸等の正規表現で置換できるテキストエディタを使い

テキストエディタに貼りつけ

タブを改行に置換
「\t」を[\n]に置換

空行を削除
「^\n」を「」に置換

が一番簡単だと思います。

投稿2019/06/13 00:02

barobaro

総合スコア1286

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

TEXTJOINで余計な作業列無しですっきりいけそうでした。

=TRANSPOSE(SPLIT(TEXTJOIN(",",TRUE,A1:C2000),",",TRUE,TRUE))

↓最初の投稿
作業列を1列使う + Excelには無いスプレッドシート関数 TRANSPOSE,SPLIT,JOIN で処理なら可能です。
値が入っているのがA~D列で、J列を作業列として使えるなら
一度 各行の値を joinで連結したいので J1に

=JOIN(",",A1:C1)

を入れて、JIをコピーし J2~J2000に貼付け
で、K1に以下の式を入れる

=TRANSPOSE(SPLIT(JOIN(",",J1:J2000),",",TRUE,TRUE))

横、縦と連結させた後、区切って 横 → 縦 って感じです。

投稿2019/07/25 03:09

編集2019/07/25 04:27
sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

スプレッドシートでの回答です

下記のコードをスクリプトエディタにはりつけてから、K1セルに
=q194679("A1:B2000")
と書いてください

javascript

1function q194679(a1notation) { 2 return SpreadsheetApp.getActiveSheet().getRange(a1notation).getValues().reduce(function(a,c){ return a.concat(c);}).filter(function(e){ return e !== "";}).map(function(e){ return [e];}); 3}

投稿2019/06/13 03:29

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

元データが何行何列あるのかわかりませんが、こんな方法で一行にまとめて、空白がある場合はフィルタ等を使って除去し、結果的にできたデータを最終的な結果として保持したい行にコピペするとかどうでしょう。

ちょっと言葉不足な気がするので補足すると

この方法なら「行番号」「列番号」の列は、例えば元データの最大列数が10で「行番号列」が列A,「列番号列」が列Bとすると、列Aと列Bの1行目に「1」を入れて、
列Aの2行目を「=IF(B1=10,A1+1,A1)」
列Bの2行目を「=IF(B1=10,1,B1+1)」
にして、2行目を下にびゃーっと引っ張れば作れます。

--以下ちょっと勘違いしてた回答
エクセルなら
1行目に貼り付けたい内容をコピー→貼り付け時に「貼り付けのオプション」で「行列を入れ替える」
の繰り返しでいいのでは(ひとつずつコピーするよりは)

Googleスプレッドシートなら「特殊貼り付け」の「転置して貼り付け」ですかね。

2000行のデータを何行分に分けたいのかわからないので、分けたい行数が少ない場合じゃないとこれでも辛いかもしれないですが。

投稿2019/06/12 20:46

編集2019/06/12 21:44
gentaro

総合スコア8947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dadada_c.

2019/06/12 20:56

ありがとうございます。その方法でやっているのですが…2000行分作業をしないといけません。。 2000行分を1列にしたいのです。。
gentaro

2019/06/12 21:07

あ、元データでなく結果が2000行分になるんですか。 すみません逆だと思ってました。
gentaro

2019/06/12 21:16

ちょっとだけ考えて回答を修正してみました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問