BI探検ノート

Power Query で「S01-渋谷」のような値を2つの列に分ける方法

約5分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 前提
  2. 手順
  3. 落とし穴: ハイフンが2つある行
  4. 直し方: 一番左の区切り記号で分ける
  5. 公式の記載との照合
  6. この記事で確認できたこと・できていないこと
  7. 参考

確認日2026年10月24日。Power BI Desktop(日本語版、2.159.883.0)で、ダミーの CSV を使って確かめました。確認できていないことは、末尾にまとめました。

「S01-渋谷」のように、コードと名前が1つの列に入っていることがあります。Power Query の「区切り記号による分割」で、2つの列に分けられます。ただ、ハイフンが2つある行では、後ろの部分が、エラーも出さずに消えました。

結論(30秒版)

  • 列を選んで、「ホーム」タブの「列の分割」→「区切り記号による分割」を押すと、区切り記号(ここでは「-」)が自動で入り、「S01」と「渋谷」の2列(店舗.1、店舗.2)に分かれました。
  • 作ったあとに、「S04-福岡-天神」の行を足すと、店舗.2 は「福岡」になり、「天神」が消えました。エラーはありません。
  • 分割を「一番左の区切り記号」に変えると、店舗.2 は「福岡-天神」になり、残りました。

前提

ダミーの CSV(split.csv、UTF-8)を、Power Query エディターの「新しいソース」→「テキスト/CSV」で開きました。列は、「注文日時」「店舗」「金額」で、店舗は、「S01-渋谷」「S02-新宿」「S03-梅田」の形です(5行)。

読み込んだ直後の表。注文日時、店舗、金額の3列。店舗は「S01-渋谷」のようにコードと名前がつながっている(5行)

手順

  1. 「店舗」の列の見出しを押して、列を選びます。
  2. 「ホーム」タブの「列の分割」を押します。メニューには、「区切り記号による分割」「文字数による分割」「位置」「小文字から大文字による分割」「大文字から小文字による分割」「数字から数字以外による分割」「数字以外から数字による分割」が並んでいました。
  3. 「区切り記号による分割」を選びます。

ダイアログが開きました。区切り記号は、「—カスタム—」で「-」が、すでに入っていました(自動で見つけてくれたようです)。分割は、「区切り記号の出現ごと」が選ばれていました。「OK」を押します。

「区切り記号による列の分割」のダイアログ。区切り記号は「--カスタム--」で「-」。分割は「区切り記号の出現ごと」が選ばれている。ほかに「一番左の区切り記号」「一番右の区切り記号」の選択肢がある

結果は、次のとおりです。店舗が「店舗.1」(S01)と「店舗.2」(渋谷)の2列になり、型は、どちらも「テキスト」でした。

分割後の表。注文日時、店舗.1(S01、S02、S01、S03、S02)、店舗.2(渋谷、新宿、渋谷、梅田、新宿)、金額

「区切り記号による列の分割」のステップの式は、次のとおりです。

Table.SplitColumn(変更された型, "店舗", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"店舗.1", "店舗.2"})

最後の {"店舗.1", "店舗.2"} が、新しい列の名前の一覧です。画面で見えている行から、2列と決まって、書き込まれています。

落とし穴: ハイフンが2つある行

CSV に、「2026/10/04 10:00:00,S04-福岡-天神,700」の行を足して、「プレビューの更新」を押しました。

分割後の表。6行目は S04、福岡、700。「福岡」のあとの「天神」が、どの列にもない

6行目は、店舗.1 が「S04」、店舗.2 が「福岡」でした。「天神」は、どこにもありません。エラーも、警告も出ませんでした。列の名前を2つで固定しているため、3つ目の部分は、入れる列がなく、捨てられたと考えられます。

Microsoft Learn の Table.SplitColumn では、分けた値が、新しい列の数より多いときの動きを決める引数 extraColumns の既定が、ExtraValues.Ignore(無視)と書かれています(確認日 2026年10月24日)。私の観察と合っています。

直し方: 一番左の区切り記号で分ける

コードと名前を分けたいだけなら、最初の「-」だけで分けるのが、安全です。

  1. 「区切り記号による列の分割」のステップの、右の歯車のアイコンを押して、ダイアログを開き直します。
  2. 「一番左の区切り記号」を選んで、「OK」を押します。

分割後の表。6行目は S04、福岡-天神、700。「天神」が残っている

6行目の店舗.2 が「福岡-天神」になり、残りました。ほかの行は、同じです。

3つの部分に分けたいときは、「区切り記号の出現ごと」のままにして、式の列の名前の一覧に、「店舗.3」を足す方法が、公式のフォーラムの回答(Microsoft Q&A)にありました。この方法は、私は、試していません。

公式の記載との照合

Microsoft Learn の「Split columns by delimiter」と「Table.SplitColumn」(英語版、確認日 2026年10月24日)と、私の観察を、突き合わせました。

  • 分割の位置: 「左端の区切り記号」「右端の区切り記号」「区切り記号の出現ごと」を選べる、と書かれています。私の画面にも、同じ3つがありました。
  • 新しい列の名前: 元の列の名前に、ドットと番号を付けた名前になる、と書かれています。「店舗.1」「店舗.2」と同じです。
  • 列の数: 公式のフォーラムの回答では、列の数は、画面に見える行(読み込みの先頭の行)で決まり、あとから増えた行の分は、増えない、と説明されています。私の観察と合っています。

この記事で確認できたこと・できていないこと

確認日: 2026年10月24日。Power BI Desktop(Windows、日本語版、2.159.883.0、未サインイン)、ダミーの CSV 5行(6行目は、確認のために足しました)。

確認できたこと

  • 「区切り記号による分割」で、「S01-渋谷」が2列に分かれ、ハイフンが自動で入ること
  • 式の中に、新しい列の名前(店舗.1、店舗.2)が、固定で入ること
  • ハイフンが2つの行で、3つ目の部分が、エラーなしで消えること
  • 「一番左の区切り記号」にすると、残りの部分が、2列目に入ること

確認できていないこと

  • 3列に分ける方法(フォーラムの回答にある、列の名前を足す方法)
  • 「一番右の区切り記号」の動き
  • 区切り記号が、全角や、複数の文字のとき
  • 行へ分割する(「行」への分割)
  • 数万行以上の大きなデータ
  • Power BI サービスでの動作、英語版での名称

参考

この記事で使った用語

Power BI Desktop
Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。

用語集をすべて見る