エクセル練習問題
ハイフン区切り文字列の『最初』と『最後』を抽出・結合解答

エクセルの関数・操作のちょっと難しい問題、Excelチャレンジ問題集
公開日:2013年5月以前 最終更新日:2026-02-23

ハイフン区切り文字列の『最初』と『最後』を抽出・結合解答

エクセル練習問題解答ページです。

エクセル練習問題

ハイフン"-"で区切られた任意の長さの文字列において、
「最初のハイフンより前」と「最後のハイフンより後ろ」の要素のみを抽出し、
それらをハイフン"-"で結合して出力してください。

※文字列には必ず"-"が1つ以上含まれているものとする。

ハイフン区切り文字列の『最初』と『最後』を抽出・結合


シンキングタイム

シンキングタイム開始


シンキングタイム終了

当サイトのコンテンツ
自分に合った、学習方法を見つけましょう。

エクセル入門
エクセル作業において必須となるショートカットキーから基本の操作、機能、そして覚えておくべき関数とその使い方までを、入門・初級・初心者向けに解説しています。エクセルには多くの関数がありますが、どの業種でも必要とされる関数に絞って紹介しています。
エクセル基本操作
エクセルの基本操作について解説。知ってそうで知らない操作や高度な操作まで。日付、時刻に関するあれこれ 数値の書式のあれこれ1.千単位、百万単位2.不要な0を表示せずに、小数点位置を揃える3.ユーザー定義書式で条件付き書式を使う4.Excel2003で、条件によりフォント色を5段階で表示する方法。
エクセル関数応用
エクセルの関数の応用技の解説。関数サンプルと必須の基本技術から応用・高等テクニックまでを紹介しています。1年後の日付、○か月後の日付 複数条件の合計・件数・サンプルデータ・複数条件の合計・複数条件の件数・スピルと新関数 入力規則のリストを、追加・削除に自動対応で作成一覧リストを使用して、「入力規則」の「リスト」を作…

ここで、じっくり勉強して下さい。

エクセル練習問題解答

では解答です。
以下に何通りかの数式を提示します。
数式1
=LEFT(A1,FIND("-",A1)-1)&"-"&TRIM(RIGHT(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1)))
解説
※TEXTBEFORE/TEXTAFTERが無い旧Excel用の書き方

  1. 左側(最初の部分):最初のハイフンより前
    LEFT(A1,FIND("-",A1)-1)
    • FIND で最初の「-」の位置を取得
    • その1文字手前までを LEFT で取り出す
  2. 右側(最後の部分): 最後のハイフンより後
    SUBSTITUTE(A1,"-",REPT(" ",LEN(A1)))
    • すべての「-」を大量の空白に置き換える
    • RIGHT(...,LEN(A1)) で右端を取得
    • TRIM で余分な空白を削除
  3. 仕上げ
    その2つを " - " で連結。

数式2
=TEXTBEFORE(A1,"-",1)&"-"&TEXTAFTER(A1,"-",-1)
解説
A1セルの文字列を「-(ハイフン)」で区切り、
  • 最初の「-」より前の部分を TEXTBEFORE(A1,"-",1) で取り出す
  • 最後の「-」より後の部分を TEXTAFTER(A1,"-",-1) で取り出す
その2つを " - " でつなぎ直す

数式3
=TEXTJOIN("-",,TAKE(TEXTSPLIT(A1,"-"),,{1,-1}))
解説
  1. 分解
    TEXTSPLIT(A1,"-")
    例)
    AAA-BBB-CCC
    → {AAA, BBB, CCC}
  2. 1番目と最後だけ取る
    TAKE(...,,{1,-1})
    1 → 最初
    -1 → 最後
    → {AAA, CCC}
  3. つなぎ直す
    TEXTJOIN("-",, … )
    → AAA-CCC
ひとことで
分解 → 先頭と末尾だけ選択 → 再結合

数式4
=REGEXEXTRACT(A1, "^([^-]+)") & "-" & REGEXEXTRACT(A1, "([^-]+)$")
解説
前半
REGEXEXTRACT(A1, "^([^-]+)")
^ → 文字列の先頭
[^-]+ → ハイフン以外の文字が1文字以上
→ 最初のハイフンより前を取得
後半
REGEXEXTRACT(A1, "([^-]+)$")
$ → 文字列の末尾
[^-]+ → ハイフン以外の連続文字
→ 最後のハイフンより後を取得
仕上げ
2つを " - " で連結。

数式5
=REGEXREPLACE(A1, "-.*-", "-")
解説
最初のハイフンから最後のハイフンまでを、1つの「-」に置き換える式です。

-.*-
  • - → ハイフン
  • .* → 任意の文字をできるだけ多く(貪欲)
  • - → ハイフン
つまり
ハイフンから始まり、ハイフンで終わる、その間は何でもOK
それで、見つかった文字列をハイフン1つに置き換えています。


※本記事の作成にあたっては随所で生成AIを活用しています。全て最終的に人間が確認した後に掲載しています。





新着記事NEW ・・・新着記事一覧を見る

ハイフン区切り文字列の『最初』と『最後』を抽出・結合|エクセル練習問題(2026-02-23)
AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ