「excel」タグアーカイブ

【保存版】Excelで文字列を分割する方法(区切り位置&関数)

Excelで大量のデータを扱っていると「氏名を姓と名に分けたい」「住所から都道府県だけ抽出したい」といった場面がよくあります。
そんなときに便利なのが 文字列を分割する方法 です。

Excelには以下の2つの方法があります。

  1. 区切り位置 機能で一括分割

  2. 関数 で動的に分割

さらに Excel 365以降なら TEXTSPLIT 関数 を使うことで一気に処理できます。本記事では、それぞれの使い方をわかりやすく解説します。


1. 区切り位置を使って文字列を分割する方法

「区切り位置」は、セル内の文字列を スペース・カンマ・タブ などの区切り文字で分割し、複数列に展開する機能です。

手順

  1. 分割したいセル範囲を選択

  2. [データ] タブ → [区切り位置] をクリック

  3. 「区切り文字あり」を選んで [次へ]

  4. 区切り文字(スペース、カンマなど)を指定

  5. [完了] を押すと自動で分割

  • 「山田 太郎」 → 「山田」「太郎」に分割

  • 「東京都,新宿区,西新宿」 → 「東京都」「新宿区」「西新宿」に分割

メリット

  • ワンクリックで大量のセルを一気に処理可能

  • 初心者でも簡単

⚠️ デメリット

  • 元データが更新されても自動反映されない


2. 関数を使って文字列を分割する方法

データが更新されても動的に処理したい場合は 関数 を利用します。

代表的な関数

LEFT / RIGHT / MID 関数

  • =LEFT(文字列, 文字数) → 先頭から指定文字数を抽出

  • =RIGHT(文字列, 文字数) → 末尾から指定文字数を抽出

  • =MID(文字列, 開始位置, 文字数) → 任意の位置から文字を抽出

FIND / SEARCH 関数

  • =FIND(" ",A2) → セルA2のスペース位置を検索

  • SEARCH は大文字小文字を区別せず検索可能


3. TEXTSPLIT関数(Excel 365以降)

Excel 365以降では TEXTSPLIT を使えば一発です。

構文

=TEXTSPLIT(文字列, 区切り文字)

 
=TEXTSPLIT("山田 太郎"," ")

→ 「山田」「太郎」に分割

住所の例

=TEXTSPLIT("東京都 新宿区 西新宿"," ")

→ 「東京都」「新宿区」「西新宿」に分割

✅ シンプルで応用も簡単!


4. 古いExcelでTEXTSPLITを代替する方法

Excel 2016 / 2019 など TEXTSPLIT未対応のバージョンでは、LEFT / MID / RIGHT / FIND / LEN の組み合わせで対応できます。

氏名の分割(A2セルが「山田 太郎」の場合)

  • 姓(山田)

=LEFT(A2,FIND(" ",A2)-1)
  • 名(太郎)

=MID(A2,FIND(" ",A2)+1,LEN(A2)-FIND(" ",A2))

住所の分割(E2セルが「東京都 新宿区 西新宿」の場合)

  • 都道府県

=LEFT(E2,FIND(" ",E2)-1)
  • 市区町村

=MID(E2,FIND(" ",E2)+1,FIND(" ",E2,FIND(" ",E2)+1)-FIND(" ",E2)-1)
  • 町域

=RIGHT(E2,LEN(E2)-FIND(" ",E2,FIND(" ",E2)+1))

⚠️ 注意:スペースが「全角」で入力されている場合は、事前に

=SUBSTITUTE(E2," "," ")

で半角に置換してから使うと安定します。


5. 区切り位置と関数の使い分け

  • 一度だけ分割する場合 → 区切り位置が便利

  • 更新されるデータを扱う場合 → 関数を使うのがベスト

  • Excel 365以降のユーザー → TEXTSPLITで最速処理


まとめ

Excelで文字列を分割する方法は大きく分けて以下の3つ:

  • 区切り位置(手早く一括分割)

  • TEXTSPLIT関数(Excel 365以降)(最もシンプル)

  • LEFT / MID / RIGHT 関数の組み合わせ(古いバージョン対応)

環境や目的に合わせて最適な方法を選べば、日常業務がさらに効率化できます。

ChatGPTにExcelマクロを書かせてCSVを自動処理|初心者でもできるフィルタリング自動化

はじめに

業務でCSVデータを扱う機会は多いですが、毎回手作業でフィルタリングするのは大変です。
そんなときに便利なのが Excelマクロ(VBA)による自動処理

しかも今は、ChatGPTに「CSVを読み込んでフィルタリングするマクロを書いて」と依頼するだけで、即座にマクロコードを生成してくれます。

この記事では、その手順を実際の例で紹介します。


手順①:ChatGPTに依頼する

ChatGPTに次のように入力します。

プロンプト例:

CSVファイルを読み込んで、列Bが「完了」のデータだけを新しいシートに表示するExcel VBAマクロを書いてください。

👉 条件(例:「列Bが完了」)は自由に変更できます。


手順②:ChatGPTが生成したマクロコード

ChatGPTは以下のようなコードを生成してくれます。


手順③:Excelに貼り付ける

  1. Excelを開き、Alt + F11でVBAエディタを起動

  2. 「挿入」→「標準モジュール」を選択

  3. 上記コードを貼り付け

  4. CSVファイルのパス(filePath)を自分の環境に合わせて変更


手順④:マクロを実行する

  1. Excelに戻り、Alt + F8を押して「ImportAndFilterCSV」を実行

  2. 新しいシート「Filtered」に、列Bが「完了」のデータだけが表示される

これでCSVのフィルタリングが自動化できました!


応用ポイント

  • 条件を「完了」以外に変えることで、自由にフィルタリング可能

  • 複数条件もIf文を追加すれば対応できる

  • 定期的に同じCSVを処理する場合は、処理時間を大幅に短縮できる


まとめ

ChatGPTを活用すれば、複雑に思えるCSV読み込み+フィルタリング処理も、たった1行の依頼でマクロコードが完成します。

毎日の業務で繰り返しCSV処理をしている方は、ぜひChatGPTにコード生成を任せてみてください。

👉 次回は「条件付きでセルに色をつけるマクロ」をChatGPTで生成する方法を紹介予定です。

👉 ChatGPTでできるExcel自動化の基本4ステップ|列A+Bを合計して列Cに表示する方法

毎日のExcel作業で「同じ計算を繰り返すのが面倒…」と感じていませんか?
実はChatGPTを使えば、数行の依頼だけでExcelマクロを自動生成でき、作業を一気に効率化できます。

この記事では、列Aと列Bを合計して列Cに表示するシンプルなマクロをChatGPTに作らせる手順を紹介します。
初心者でもコピペで使えるので、今日からすぐに実践可能です。


手順①:ChatGPTに依頼するプロンプト例

まずはChatGPTを開き、次のように指示を入力します。

プロンプト例:

Excel VBAで、列Aと列Bを合計して列Cに表示するマクロを書いてください。

手順②:ChatGPTが生成したマクロコード

ChatGPTからは以下のようなコードが返ってきます。

このコードは、

  • 列Aの最終行を取得

  • 1行目から最終行まで繰り返し

  • 列A+列Bの値を列Cに出力

という処理を自動で行ってくれます。

手順③:Excelに貼り付ける

  1. Excelを開き、Alt + F11 を押してVBAエディタを開く

  2. 「挿入」→「標準モジュール」を選択

  3. ChatGPTが出力したコードを貼り付ける

  4. Ctrl + Sで保存


手順④:マクロを実行する

  1. Excelに戻り、Alt + F8 を押す

  2. 「SumColumns」を選択して実行

  3. 列Cに、列A+列Bの合計が自動で入力される

これで完成です!

まとめ

ChatGPTを活用すれば、たった1行の依頼でExcelマクロを自動生成できます。
今回の例では「列A+列Bの合計 → 列Cに表示」というシンプルな処理でしたが、応用すればデータ加工やレポート作成も自動化できます。

👉 さらに詳しい応用例(CSV加工や条件付き処理など)は別記事で紹介予定です。

業務の時短にぜひ活用してみてください!

 

Excel:半角・全角文字のチェック方法

Excelを使用して文字列の中に半角文字が含まれてるかどうかを確認する方法です。

半角文字の有無を確認するにはLEN関数とLENB関数の結果を比較することで文字列の中に半角文字が含まれてるかどうかを確認出来ます。

LEN関数とLENB関数を使用して半角文字の有無を確認する方法

以下はA列の文字列をLEN関数(文字列の長さ)とLENB関数(文字列のバイト数)でそれぞれで取得し、「LEN(A2)*2 – LENB(A2) = 0」に該当する場合に半角文字を含まないと判断してます。

Excel:文字列で入力済の値を数値形式へまとめて変換する方法

Excelで文字列として入力済の値をまとめて数値形式へ変換する方法です。

以下の様にA1~A3セルへは文字列として入力しており、A4セルで集計してますが文字列なので0表示されてしまっています。

このA1~A3セルの文字列を数値形式に変換してみます。

 

  1. 数値変換したい範囲を選択し、エラーチェックオプション(!マークのアイコン)を選択します。
  2. 「数値に変換する」を選択します。
  3. これだけで以下のように数値形式へ一括変換され正常に集計結果が表示されます。

Excel:図形(オブジェクト・オートシェイブ)内の文字列を検索する方法

Excelで図形(オブジェクト・オートシェイブ)内の文字列を検索すると通常は以下の様に検索結果にヒットせず「検索対象が見つかりません。…」と表示されます。

今回は「Relax Tools AddIn」というアドインを導入して図形内の文字列を検索可能とする手順を説明します。

アドイン「Relax Tools AddIn」のダウンロード

Excelで図形内の文字列を検索する手順

  1. 「オプション」を選択します。
  2. 「アドイン」⇒「設定」ボタンを選択します。
  3. 「参照」ボタンを選択します。
  4. ダウンロードしたファイル内にある「RelaxTools.xlam」を選択します。
  5. 以下の様に「RelaxTools AddIn」が追加されていることを確認します。
  6. 追加された「RelaxTools」タブの「検索/置換/装飾」⇒「セル・シェイブの正規表現検索」を選択します。
  7. 検索ボックスで検索を実施すると以下の様に図形内の文字列も検索結果として表示されているのが確認出来ます。

Excelの表をWordへ貼り付ける方法

Excelで作成した表やテーブルなどをWordへ貼り付ける場合、単純にコピペでも可能ですが、計算式などの書式は数値としてそのままコピーされるので今ひとつ使い勝手が良くない表になってしまいます。

そういう場合は「形式を選択した貼り付け」でExcel形式のオブジェクトとして貼り付けすることでExcelの計算式などもコピペ出来るので便利です。

Excelの表をWordへ貼り付ける手順

  1. Excelで貼り付けたい表を選択してコピーします。
  2. Wordで「ホーム」タブ ⇒ 「貼り付け」 ⇒ 「形式を選択して貼り付け」 を選択します。
  3. 「Microsoft Excel ワークシート オブジェクト」を選択して「OK」ボタンを選択します。
  4. 以下のようにExcelの表のまま貼り付けられているのが確認できます。
  5. 貼り付けた表をダブルクリックするとExcelベースでのフィルタやグループ化なども操作する事が可能となります。

Excel:非表示行を含めずに集計(カウント)する方法

Excelで非表示行を含めずに集計したい場合はSUBTOTAL関数を使用すると便利です。

フィルタで絞ったり、グループ化して一部範囲行を非表示にして現在表示されている行のみ集計したい場合などで有用となる関数です。

SUBTOTAL関数の書式

  • =SUBTOTAL(集計方法,参照1,[参照2]…)
  • 第1引数の集計方法には1~11のコード値か101~111のコード値を指定出来ます。3桁のコード値を指定する事で非表示行を含めずに集計することが可能になります。
    Function_num
    (非表示行を含む)
    Function_num
    (非表示行を含めない)
    関数
    1101AVERAGE
    2102COUNT
    3103COUNTA
    4104MAX
    5105MIN
    6106PRODUCT
    7107STDEV.S
    8108STDEV.P
    9109SUM
    10110VAR.S
    11111VAR.P

SUBTOTAL関数の使用例

  • 下記サンプル(テーブル)ではC列は通常のSUM関数、D列をSUBTOTAL関数で集計しています。全ての行を表示している場合はどちらも値は同じとなります。D8セルには「=SUBTOTAL(109,[金額2])」を入力します。
  • グループ化した分類=①の行を非表示にしてみると以下の様に分類=②の行のみの集計値がD列に表示されているのが確認出来ます。
  • 他にもフィルタで商品=Aのみ表示すると商品=Aの集計のみD列に表示されているのが確認出来ます。

 

Excel:本日の日付を表示する方法

Excelで本日の日付を表示するにはTODAY関数を使用すれば簡単に表示出来ます。

TODAY関数はパソコンの内部時計から現在日付を取得して表示する関数となります。

TODAY関数を使用して本日の日付を表示する例

・以下の例ではB2セルへ「=TODAY()」を入力して本日の日付を表示しています。

Excel:フラッシュ フィル機能でデータを自動入力する方法

Excel2013から追加されたフラッシュ フィル機能はデータ入力に法則性があるとそれに沿って自動入力してくれる機能です。これまで関数や区切り文字などでウィザードを使用して分割表示させていたものを一瞬で入力出来るようになります。

フラッシュフィル機能の使用例

  1. 以下の様にAセルへ氏名を入力します。
  2. 次に姓と名を分けて2行目へ入力します。
  3. B列のセルを選択して「ホーム」タブ ⇒ 「フィル」 ⇒ 「フラッシュ フィル」を選択します。
  4. 以下の様にB列へ自動で姓のみ入力されているのが確認出来ます。
  5. 同様にC列を選択してフラッシュフィルを実行すると以下の様にC列にも名のみ自動で入力されます。