Markdown(マークダウン)で技術仕様書、README、議事録、ブログ記事、業務マニュアルを作成する際、複雑なデータや比較情報をすっきりと整理して伝えるために欠かせないのが「Markdown 表(マークダウン 表 / markdown table / マークダウン テーブル)」です。
「Markdownで表を作る基本の書き方や区切り行(|---|)のルールをすぐに知りたい」「文字の左揃え・中央揃え・右揃え(アライメント)はどう指定する?」「Markdownの表でセル結合(行結合・列結合)を行うにはどうすればいい?(markdown 表 結合)」「セル内での改行(<br>)やチェックボックス、コードの埋め込み方は?」「Excelやスプレッドシートから一瞬でMarkdownテーブルに変換できる便利ツールやVS Code拡張機能を知りたい」といった疑問や悩みを抱えている方は多いのではないでしょうか。
Markdownのテーブル記法(table markdown)は、パイプ(|)とハイフン(-)を組み合わせるシンプルな構文で構成されています。基本ルールと配置指定、さらにHTMLタグを併用したセル結合やセル内改行の応用テクニックを押さえることで、誰でも直感的かつ美しく整ったプロ品質の表・markdown テーブルを瞬時に作成できるようになります。
この記事では、コピペですぐに使える「Markdown表・マークダウン テーブル 逆引きチートシート」をはじめ、基本構文のルール、文字配置(アライメント)の指定法、セルの結合テクニック(colspan / rowspan)、セル内改行・装飾・特殊文字エスケープの実践技、おすすめ作成ツール・VS Code拡張機能、表が崩れる原因と対処法まで、網羅的かつ分かりやすく徹底解説します!
📌 本記事のポイント・要点まとめ
- 基本構文: ヘッダー行、区切り行(
|---|---|)、データ行の3段構成。区切り行は必須 - 文字揃え(配置): 区切り行にコロン(
:)を配置(左揃え:---/ 中央揃え:---:/ 右揃え---:) - セル結合(結合技): Markdown単体では非対応。HTMLの
<td colspan="2">(列結合)や<td rowspan="2">(行結合)を活用する - セル内改行: 通常の改行(Enter)は構文が壊れるため、HTMLの
<br>タグを使用する - パイプ記号の表示: 表の中で文字として
|を使う場合は\|または|でエスケープする - 効率化ツール: Excelからのコピペ変換ツールやVS Code拡張機能でマークダウン テーブルを爆速作成
【早見表】Markdown表・テーブル 逆引きチートシート
まずは、日常の執筆やドキュメント作成で頻出するMarkdownテーブル(markdown table / マークダウン 表)の書き方を一覧表にまとめました。コードをそのままコピー&ペーストしてご活用ください。
| やりたいこと | Markdown記述(コピペ用) | ブラウザでの表示結果 | 主な用途 |
|---|---|---|---|
| 標準の表 (基本形) |
| 項目 | 説明 | |
ヘッダーとデータのシンプルな2列表 | 基本データ一覧 |
| 左揃え (デフォルト) |
| :--- | :--- | |
文字が左端に揃う | テキスト・名称 |
| 中央揃え (センタリング) |
| :---: | :---: | |
文字が中央に揃う | ステータス・日付・区分 |
| 右揃え (数値・金額) |
| ---: | ---: | |
文字・数値が右端に揃う | 金額・個数・割合 |
| セル内改行 | | 項目 | 1行目<br>2行目 | |
セルの中で改行される | 複数行の説明・補足 |
| 横のセル結合 (列結合) |
<table><tr><td colspan="2">2列結合</td></tr></table> |
横の2つのセルが1つに結合 | 大見出し・グループ化 |
| 縦のセル結合 (行結合) |
<table><tr><td rowspan="2">2行結合</td><td>A</td></tr><tr><td>B</td></tr></table> |
縦の2つのセルが1つに結合 | 共通分類・カテゴリ行 |
| 書式装飾 | | **太字** | `コード` | [リンク](url) | |
セル内に装飾やリンクが反映 | キーワード強調・URL |
| パイプ記号表示 | | 論理和 | `\|` または `|` | |
表を崩さずに | が表示される |
正規表現・プログラミング |
基本の表(テーブル)の書き方:パイプ(|)とハイフン(-)の構文ルール
Markdown 表(マークダウン 表 / markdown table)を作成するための最も基本的な構文ルールを解説します。Markdownの表は、列を区切るパイプ(|)と、ヘッダーとデータ行を区切るハイフン(-)で構成されます。
1. 表の基本構造(ヘッダー行・区切り行・データ行)
Markdownの表は、必ず以下の3つの要素で成り立っています。
- 1行目(ヘッダー行): 各列の項目名(見出し)をパイプ
|で区切って記述 - 2行目(区切り行 / デリミタ行): ハイフン
---を使ってヘッダーとデータの境目を定義(必須) - 3行目以降(データ行): 表の実際のデータ内容をパイプ
|で区切って記述
| 商品名 | カテゴリ | 価格 | 在庫 |
| --- | --- | --- | --- |
| ノートPC | 家電・PC | 128,000円 | あり |
| ワイヤレスマウス | PC周辺機器 | 3,480円 | 残りわずか |
| USB-Cハブ | PC周辺機器 | 4,200円 | あり |
▼ 上記のMarkdownコードをレンダリングした結果:
| 商品名 | カテゴリ | 価格 | 在庫 |
|---|---|---|---|
| ノートPC | 家電・PC | 128,000円 | あり |
| ワイヤレスマウス | PC周辺機器 | 3,480円 | 残りわずか |
| USB-Cハブ | PC周辺機器 | 4,200円 | あり |
⚠️ 注意:区切り行(2行目)のハイフンは最低3個以上が推奨
一部のエディタではハイフン1個(|-|)でも認識されますが、GitHubやCommonMarkの厳密な仕様では各列にハイフンを3個以上(|---|)記述することが標準とされています。互換性を保つため常に3個以上記述しましょう。
2. 両端のパイプ(|)は省略可能?記述が推奨される理由
Markdownの仕様(GFM: GitHub Flavored Markdown)では、各行の先頭と末尾にあるパイプ(|)を省略しても表としてレンダリングされます。
項目名 A | 項目名 B | 項目名 C
--- | --- | ---
データ 1 | データ 2 | データ 3
しかし、実務やチーム開発では両端のパイプ(|)を必ず記述することが強く推奨されます。理由は以下の3点です:
- プレーンテキストでの可読性向上: 原稿(ソースコード)を見ただけで一目で「表」だと認識できる
- パーサーの誤認識防止: 前後のテキストとの境界が明確になり、パースエラー(崩れ)を防げる
- エディタの自動整形機能の適用: VS CodeやTyporaの自動アライン機能が正確に動作する
3. ソースコード内のスペースと列揃え(整形ルール)
Markdownの表では、ソースコード内のスペース(空白)の数は表示結果に影響しません。以下のようにスペースを詰めて書いても、綺麗に揃えて書いても、ブラウザでの表示結果は全く同じになります。
# スペースを詰めた書き方(手軽だがソースが読みづらい)
|ID|氏名|役職|
|---|---|---|
|1|山田太郎|エンジニア|
|2|佐藤花子|デザイナー|
# スペースで列幅を揃えた書き方(おすすめ:ソースが圧倒的に見やすい)
| ID | 氏名 | 役職 |
| --- | -------- | ---------- |
| 1 | 山田太郎 | エンジニア |
| 2 | 佐藤花子 | デザイナー |
ソースコードの可読性を高めるため、VS Codeの拡張機能などを活用してスペースで列を綺麗に揃えておくのがベストプラクティスです。
文字の配置・アライメント調整(左揃え・中央揃え・右揃え)
表を作成する際、データの種類に応じて「文字を左に寄せたい」「数値を右揃えにしたい」「日付や状態を中央揃えにしたい」という場面が必ずあります。Markdownでは、2行目の区切り行(デリミタ行)に半角コロン(:)を挿入するだけで、列ごとに配置(アライメント)を自由自在にコントロールできます。
1. コロン(:)の位置による3つのアライメント指定構文
| 配置の種類 | 区切り行の書き方 | おすすめの適用データ |
|---|---|---|
| 左揃え(左寄せ) | :--- または --- |
商品名、氏名、概要、説明文、一般的な日本語テキスト |
| 中央揃え(センタリング) | :---: |
ステータス(完了/進行中)、日付、区分、ID、○×判定 |
| 右揃え(右寄せ) | ---: |
金額、数値、個数、パーセンテージ(%)、ファイルサイズ |
2. アライメント指定の実践サンプルコードと表示結果
| 項目(左揃え) | 状態(中央揃え) | 金額(右揃え) | 割引率(右揃え) |
| :--- | :---: | ---: | ---: |
| スタンダードプラン | 利用中 | 2,980円 | 0% |
| プレミアムプラン | 準備中 | 9,800円 | 15% |
| エンタープライズ | 要相談 | 個別見積 | 20% |
▼ レンダリング結果:
| 項目(左揃え) | 状態(中央揃え) | 金額(右揃え) | 割引率(右揃え) |
|---|---|---|---|
| スタンダードプラン | 利用中 | 2,980円 | 0% |
| プレミアムプラン | 準備中 | 9,800円 | 15% |
| エンタープライズ | 要相談 | 個別見積 | 20% |
💡 見やすい表を作るための配置テクニック:
金額や数量などの数値データは右揃え(---:)に設定すると、桁数が綺麗に揃って読者が数値を直感的に比較しやすくなります。状態バッジや短い日付は中央揃え(:---:)にするとすっきりまとまります。
セルの結合テクニック(行結合・列結合の完全攻略):markdown 表 結合
多くの人が直面する大きな悩みが「Markdownの表でセルを結合したい(行結合・列結合)」「markdown 表 結合のやり方は?」という問題です。
💡 Markdown単体ではセル結合記法が存在しない理由:
標準のMarkdown(CommonMark)およびGitHub Flavored Markdown(GFM)には、セル結合専用のMarkdown構文(記号)は定義されていません。テキストベースのシンプルな構造を維持するため、2次元のセル跨ぎを表現する記法が標準仕様から除外されているためです。
しかし諦める必要はありません!Markdownは「HTMLタグをそのまま記述できる」という強力な仕様を持っています。テーブル部分にHTMLの <table> タグと colspan(列結合)/ rowspan(行結合)を直接記述することで、あらゆるMarkdown環境で綺麗なセル結合を実現できます。
1. 横方向のセル結合(列結合:colspan)の書き方
横に並んだ複数のセルを1つに結合したい場合は、<td colspan="結合する列数"> または <th colspan="結合する列数"> を使用します。
<table>
<thead>
<tr>
<th>分類</th>
<th colspan="2">プラン詳細(2列結合)</th>
</tr>
</thead>
<tbody>
<tr>
<td>個人向け</td>
<td>ライト:500円</td>
<td>プロ:1,500円</td>
</tr>
<tr>
<td>法人向け</td>
<td colspan="2">エンタープライズ:一括お問い合わせ(2列結合)</td>
</tr>
</tbody>
</table>
▼ 表示結果:
| 分類 | プラン詳細(2列結合) | |
|---|---|---|
| 個人向け | ライト:500円 | プロ:1,500円 |
| 法人向け | エンタープライズ:一括お問い合わせ(2列結合) | |
2. 縦方向のセル結合(行結合:rowspan)の書き方
縦に並んだ複数の行にまたがってセルを結合したい場合は、<td rowspan="結合する行数"> を使用します。結合された下の行では、該当する <td> を省略して記述します。
<table>
<thead>
<tr>
<th>部署</th>
<th>役職</th>
<th>担当者</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">開発部(2行結合)</td>
<td>リーダー</td>
<td>佐藤</td>
</tr>
<tr>
<!-- 上の行でrowspan指定したため部署セルは省略 -->
<td>メンバー</td>
<td>鈴木</td>
</tr>
<tr>
<td rowspan="2">営業部(2行結合)</td>
<td>マネージャー</td>
<td>田中</td>
</tr>
<tr>
<td>メンバー</td>
<td>高橋</td>
</tr>
</tbody>
</table>
▼ 表示結果:
| 部署 | 役職 | 担当者 |
|---|---|---|
| 開発部(2行結合) | リーダー | 佐藤 |
| メンバー | 鈴木 | |
| 営業部(2行結合) | マネージャー | 田中 |
| メンバー | 高橋 |
✨ HTML埋め込み時の注意点とコツ:
Markdown文書内にHTMLの <table> を記述する際は、前後に必ず空行を1行空けるようにしてください。また、HTMLテーブルタグの内側ではMarkdown記法(**太字** 等)がパースされない場合があるため、装飾にもHTMLタグ(<strong> や <code>)を使用すると確実です。
【実践・応用技】表(セル内)での高度な表現テクニック
実際の業務ドキュメントやマニュアル作成では、セルの中に「改行を入れたい」「太字やリンクを埋め込みたい」「チェックボックスを並べたい」「パイプ記号(|)そのものを文字として表示したい」といった要求が発生します。それぞれの実践テクニックを詳しく解説します。
1. セル内で改行する方法(<br> タグの活用)
Markdownの表セル内で通常の改行(Enterキー)を押すと、行が分断されて表の構文が完全に崩れてしまいます。セル内で改行を行うには、HTMLの <br> タグ を使用します。
| プラン名 | 特徴・含まれるサービス | 月額料金 |
| :--- | :--- | ---: |
| スターター | ・初期費用無料<br>・ストレージ 10GB<br>・ユーザー数 3名まで | 980円 |
| ビジネス | ・初期費用 10,000円<br>・ストレージ 1TB<br>・ユーザー数 無制限<br>・24時間サポート付き | 4,980円 |
▼ 表示結果:
| プラン名 | 特徴・含まれるサービス | 月額料金 |
|---|---|---|
| スターター | ・初期費用無料 ・ストレージ 10GB ・ユーザー数 3名まで |
980円 |
| ビジネス | ・初期費用 10,000円 ・ストレージ 1TB ・ユーザー数 無制限 ・24時間サポート付き |
4,980円 |
2. セル内で太字・斜体・コード・リンク・画像を使う
Markdownの表セル内では、インラインの書式設定(太字、イタリック、取り消し線、インラインコード、リンク、画像)を通常通り利用できます。
| 装飾の種類 | 記述例 | 表示イメージ |
| :--- | :--- | :--- |
| **太字(強調)** | `**重要**` | 重要 |
| *斜体(イタリック)* | `*補足*` | 補足 |
| ~~取り消し線~~ | `~~旧価格 5,000円~~` | 旧価格 5,000円 |
| `インラインコード` | `` `npm install` `` | npm install |
| [ハイパーリンク](https://example.com) | `[公式サイト](https://example.com)` | 公式サイト |
3. 表内にチェックボックス(タスク・進捗管理)を配置する
GitHubやNotion、Obsidianなどの環境では、表のセル内に [ ](未完了)や [x](完了)を記述することで、タスクリスト形式の表を作成できます。
| タスク項目 | 担当者 | 完了状態 | 期限 |
| :--- | :---: | :---: | :---: |
| 要件定義書の作成 | 佐藤 | [x] 完了 | 8/20 |
| デザインモック作成 | 田中 | [x] 完了 | 8/22 |
| フロントエンド実装 | 鈴木 | [ ] 進行中 | 8/28 |
| 単体テスト実施 | 高橋 | [ ] 未着手 | 8/31 |
4. パイプ記号(|)そのものをセル内に表示するエスケープ法
プログラミングの論理OR演算子(||)やコマンドのパイプライン(cat file | grep text)など、表の中で | を文字として表示したい場合、そのまま書くと列の区切りと誤認されて表が壊れてしまいます。
表の中でパイプを表示するには、以下の2つのエスケープ方法があります:
- バックスラッシュ(円マーク)でエスケープ:
\|と記述する(例:`a \| b`) - HTML特殊文字(文字実体参照)を使用:
|と記述する(推奨:あらゆるパーサーで最も安全)
| 演算子 / コマンド | 説明 | 記法サンプル |
| :--- | :--- | :--- |
| `\|` または `|` | 単一パイプ(OR演算) | `true \| false` |
| `\|\|` または `||` | 論理OR | `if (a \|\| b)` |
| `cmd1 | cmd2` | コマンド連携 | `ps aux | grep node` |
テーブル作成を爆速化する便利ツール&エディタ拡張機能
Markdownの表を手動で | や - を打ち込んで作成するのは、列数や行数が増えるほど大きな負担になります。ここでは、マークダウン テーブルの作成作業を10倍以上スピードアップできるおすすめWebツールやVS Code拡張機能を紹介します。
1. オンラインMarkdownテーブルジェネレーター(Webツール)
ブラウザ上でGUI操作(Excel感覚)で表を作成し、ワンクリックでMarkdown形式のコードを生成できる無料Webサービスです。
- Tables Generator (tablesgenerator.com): 最も有名で定番のテーブルジェネレーター。ExcelやCSVからのコピペインポートに対応し、文字揃えやセル結合の設定も直感的に行えます。
- TableConvert (tableconvert.com): Excel、JSON、CSV、HTML、SQLなど多様なデータフォーマットから一瞬でMarkdown表に相互変換できる高機能ツールです。
2. VS Codeのおすすめ拡張機能(エディタ連携)
VS CodeでMarkdownを書く場合、以下の拡張機能(Extensions)を導入すると表の作成・編集が劇的に快適になります。
- Markdown Table Prettifier: ショートカット1発で、ガタガタに崩れた表のスペースと列幅を自動で綺麗に整列してくれる必須拡張機能。
- Excel to Markdown table: Excelやスプレッドシートでコピーした表データを、VS Code上で
Shift + Alt + V(MacはShift + Option + V)を押すだけで自動的にMarkdown表形式で貼り付けられる拡張機能。 - Markdown All in One: 表内で
Tabキーを押すと次のセルへ移動し、行末でEnterを押すと自動的に新しい行のパイプを生成してくれる総合Markdown拡張。
3. 専用エディタ(Typora, Obsidian, Notion)での表操作
- Typora:
Ctrl + T(Mac:Cmd + T)で行数・列数を指定して直感的に表を挿入可能。右クリックから行や列の追加・削除・並べ替えがGUIで自在に行えます。 - Obsidian: 最新版ではリッチなテーブルエディタが標準搭載され、ドラッグ&ドロップで行・列の入れ替えやアライメント変更が可能です。
- Notion:
/tableで作成した表を、ページのエクスポート機能でそのままMarkdown形式として書き出し可能です。
Markdown表が崩れる・表示されない原因とトラブルシューティング
「表を書いたのにテキストとしてそのまま表示されてしまう」「列がずれてレイアウトが崩れる」というトラブルの90%以上は、以下の典型的な原因によるものです。該当する項目がないかチェックしてみましょう。
原因1:表の直前に「空行(改行)」がない(最頻出!)
文章の直後に空行を空けずにそのまま表を書き始めると、Markdownパーサーは直前の段落の続きと認識してしまい、テーブルとしてレンダリングされません。
# ❌ NG例:文章の直後に表を連結(崩れる原因)
以下の表をご確認ください。
| 項目 | 値 |
| --- | --- |
| A | 100 |
# ⭕ OK例:表の前に必ず1行の空行を挟む
以下の表をご確認ください。
| 項目 | 値 |
| --- | --- |
| A | 100 |
原因2:区切り行(|—|—|)が抜けている、またはハイフン不足
ヘッダーとデータ行の間に |---|---| が存在しないと、表として認識されません。また、全角ハイフン(ー)やダッシュが混ざっているとエラーになります。
原因3:セル内のパイプ(|)がエスケープされていない
セル内の文章に | をそのまま書くと、列の区切りとして扱われて列数がずれ、表のレイアウトが崩壊します。必ず \| または | を使いましょう。
原因4:全角パイプ(|)や全角ハイフン(ー)が混ざっている
日本語入力のまま | や : を入力してしまうと、構文エラーになります。構文記号はすべて「半角英数」で統一してください。
原因5:セル内でEnterキーによる物理改行を行っている
セルの中でEnter改行を行うと新しい行として認識されてしまいます。セル内での改行は必ず <br> タグを使用してください。
よくある質問(FAQ)
Q1. セルの結合はMarkdownの記号だけで書くことは絶対にできませんか?
A. 標準仕様(CommonMark / GFM)ではMarkdown記号単体でのセル結合はできません。 ただし、MarkdownパーサーはHTMLタグをそのまま透過して処理するため、本記事で紹介したように <td colspan="2"> や <td rowspan="2"> といったHTMLテーブルタグを埋め込むことで、どのプラットフォームでも確実にセル結合を実現できます。
Q2. 表の列幅(幅%やpx指定)を固定・調整することはできますか?
A. 標準のMarkdown構文には幅を指定するパラメータはありません。列幅を細かくコントロールしたい場合は、HTMLの <th style="width:30%"> や <table style="width:100%"> のようにインラインCSSスタイルを適用するか、CSSクラスを指定してレイアウトを調整します。
Q3. セルの中で複数行のコードブロック(“`)を書くことはできますか?
A. Markdownの表セル内にバッククォート3つのフェンスブロック(```)を直接埋め込むことは構文上できません。コードを埋め込みたい場合は、インラインコード(`code`)を使用するか、HTMLの <pre><code>...</code></pre> タグをセル内に記述してください。
Q4. ExcelやGoogleスプレッドシートの表をそのまま貼り付けることはできますか?
A. そのままペーストするとタブ区切りテキストになってしまいますが、VS Codeの拡張機能「Excel to Markdown table」を使うか、オンラインの「TableConvert」「Tables Generator」にペーストすることで、一瞬で綺麗なMarkdown表形式に変換して貼り付けることができます。
Q5. スマホなどの狭い画面で表が横スクロールできるようにするにはどうすればいいですか?
A. Webサイトやブログで表が画面外にはみ出るのを防ぐには、表全体を <div style="overflow-x: auto;">...</div> で囲むことで、スマホ閲覧時にスムーズな横スクロールバーを表示させることができます。
まとめ|Markdown表(テーブル)をマスターして読みやすい文書を作ろう
Markdownの表・テーブル記法(markdown table / マークダウン 表)は、一見すると記号が多く複雑に見えますが、「ヘッダー + 区切り行(|---|) + データ」という基本構造と、コロン(:)による配置指定さえ押さえれば、驚くほどスピーディーに綺麗なドキュメントを作成できます。
🎯 Markdown表・マークダウン テーブル作成のチェックリスト:
- ✅ 表の直前に空行(改行)を必ず空けているか?
- ✅ 2行目に必須の区切り行(
|---|---|)を記述しているか? - ✅ 数値列は
---:で右揃え、状態・日付は:---:で中央揃えに設定しているか? - ✅ セル内改行は
<br>タグを使っているか?(Enter改行はNG) - ✅ セル結合(行結合・列結合)が必要な場合はHTMLの
colspan/rowspanを活用しているか? - ✅ セル内のパイプ記号は
\|または|でエスケープしているか?
表作成をさらに効率化したい場合は、本記事で紹介したオンラインジェネレーターやVS Code拡張機能をぜひ取り入れてみてください。Markdownの表を自由自在に使いこなし、誰にとっても見やすく分かりやすいドキュメント作りを目指しましょう!
📚 あわせて読みたいMarkdown関連記事
- 【コピペで使える】Markdown記法一覧・チートシート|基本の書き方から応用・早見表まで完全網羅
- 【即解決】Markdownで改行・段落を使い分ける方法|改行されない原因と3つの解決策・ツール別の違い
- 【コピペで使える】Markdown箇条書き・リストの書き方完全ガイド|インデント階層化・番号付き・段落やコードの挿入まで徹底解説
- Markdownコードブロックの書き方完全ガイド|シンタックスハイライト・言語指定一覧・インラインコードの使い分けまで徹底解説
- 【コピペで使える】Markdownテキスト装飾一覧|太字・取り消し線・下線・文字色・マーカーの書き方完全ガイド
- 【コピペで使える】Markdownチェックボックスの書き方完全ガイド|VSCode設定・表内の配置・できない時の対処法
- 【コピペで使える】Markdownリンクの書き方完全ガイド|ページ内リンク・別タブ・相対パス・画像リンクまで網羅
- Visual Studio CodeでMarkdownを効率的に使うための拡張機能と設定ガイド
- Typoraは無料で使える?料金プラン・無料体験版の使い方とおすすめ無料代替エディタを徹底解説
[…] […]
[…] 表(テーブル)完全ガイド […]