表の縦横入れ替え|CSV・TSVの行と列を入れ替え

CSV・表データツール
入力形式

CSVまたはTSVの表データを入力し、「縦横を入れ替える」を押してください。

このツールでできること

CSVまたはTSVで入力した表の行と列を1回入れ替え、選択した形式のままコピーできます。見出しを含む表全体や、表計算ソフトから貼り付けたTSVを縦持ち・横持ちへ組み替えられます。

使い方

  1. 入力形式から「CSV」または「TSV」を選びます。
  2. 表データを入力欄へ貼り付けます。
  3. 「縦横を入れ替える」を押します。
  4. 内容を確認し、「結果をコピー」を押します。

入力内容や形式を変更すると、以前の結果は消去されます。「クリア」を押すと入力と結果を消去し、入力形式をCSVへ戻します。

入力例・出力例

次の3行3列のCSVを入力します。

名前,年齢,地域
山田,30,東京
佐藤,28,大阪

行と列を入れ替えた次のCSVを出力します。先頭行も見出しとして特別扱いせず、通常の行と同じ位置関係で転置します。

名前,山田,佐藤
年齢,30,28
地域,東京,大阪

列数が異なる次のCSVでは、2行目に不足している3列目を空欄で補います。

A,B,C
1,2

出力の3行目は、Cと補完した空セルを持つため末尾がカンマになります。

A,1
B,2
C,

よくある利用場面

  • 横持ちの項目を縦持ちへ、またはその逆へ組み替えるとき
  • 表計算ソフトから貼ったTSVの行と列を入れ替えるとき
  • 見出しを含むCSV全体を転置し、別の表やシステムへ貼り付けるとき

処理仕様

行列の入れ替え

出力行数は入力の最大列数、出力列数は入力行数です。行ごとの列数が異なる場合は、短い行の不足セルを空文字で補って長方形にしてから転置します。入力に明記された空セルと補完した空セルは、出力では区別できません。

見出し行も通常の行と同じように処理します。001や日付風の文字列を数値や日付へ変換せず、セルの前後空白、空セル、空行も削除しません。

CSVとTSVの解析

CSVは半角カンマ、TSVは水平タブを区切り文字とし、TSVにもCSVと同じ二重引用符の規則を適用します。引用符で囲んだセル内の区切り文字と実改行、""で表した引用符、レコード区切りのLF・CRLF・CRに対応します。

引用符はセルの先頭でだけ開始できます。閉じ引用符の後には、選択形式の区切り文字、改行、または入力末尾だけを置けます。閉じていない引用符などを検出した場合は、該当する物理行付近をエラーとして表示し、途中までの結果は出力しません。

先頭のBOMは1文字だけ除去します。BOMだけの入力は空入力エラーですが、BOMの後にある空白や明示的な空セルは有効な表データです。入力末尾の1個のレコード改行は新しい空行として追加せず、改行が連続する場合は途中の空行を保持します。

出力の再生成

出力形式は選択した入力形式と同じです。セルに選択形式の区切り文字、引用符、CR、LFのいずれかが含まれる場合だけ二重引用符で囲み、内部の引用符を""へ変換します。そのため、CSVの水平タブやTSVのカンマだけを含むセルは引用しません。

レコード間はLFで結び、末尾に追加のレコード改行を付けません。セル内の実改行は保持しますが、入力のBOM、レコード改行の種類、不要な引用符の有無は保持せず、選択形式の規則で結果を作り直します。

HTML風の文字列や&などのHTMLエンティティは、HTMLとして解釈・復元しません。バックスラッシュと英字のnからなる文字列\nも実改行へ変換せず、入力されたセル文字列として扱います。

非常に大きな入力で利用できる量と処理速度は、端末とブラウザの性能に依存します。

入力データについて

入力データの解析、縦横の入れ替え、コピー用結果の作成は、外部ライブラリを使わずブラウザ内で行います。入力内容をToolRollのサーバーや外部サービスへ送信せず、Cookie、Web Storage、IndexedDB等へ保存しません。「結果をコピー」を押したときだけ、表示中の結果をクリップボードへ書き込みます。