• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで特定の文字だけ抽出する関数)

エクセルで特定の文字だけ抽出する関数

このQ&Aのポイント
  • エクセルで特定の文字列を抽出する方法について説明します。
  • A列には特定の形式の文字列があります。それぞれの列には英数字が含まれており、一部の文字列はハイフンで区切られ、一部はスペースで区切られています。
  • この条件の下で、特定の文字列だけをB列、C列、D列に表示するためには、LEFT、MID、RIGHT、FINDなどの関数を使用する必要があります。ハイフンが複数存在する場合、括弧の組み方を工夫する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.9

こういうものを関数で行う場合、作業列を使うととても易しくになりますね。 B2セルに =IF(ISNUMBER(FIND(" ",A2)),LEFT(A2,MIN(FIND({"-"," "},A2&"-"))-1),"") 半角スペースが見つかったら計算。なかったら空白にする。 計算部分は "-"と" "を左から検索して、先に見つかったところ-1 までの文字を返す。 配列定数が分かりにくい場合、 =IF(ISNUMBER(FIND(" ",A2)),LEFT(A2,MIN(FIND("-",A2&"-"),FIND(" ",A2))-1),"") でも同じ 作業列のC2セル =RIGHT(A2,LEN(A2)-LEN(B2)-1) aの部分+1文字分を消す。 D2セルは B2セルをコピペ E2セルも C2セルをコピペ E2セルも B2(D2)セルをコピペ B2:F2セルを選択し、下へオートフィル 作業列は非表示にしておけばよいでしょう 添付図参照 参考まで

その他の回答 (12)

noname#204879
noname#204879
回答No.2

『a-b d』(cの文字列が無い) 『a d』(b、cの文字列が無い) 『d』(a、b、cの文字列が無い) 》 dの前はスペースで区切られています それは半角、全角混在ですか?貴方は… 「a-b-c d」の場合は半角スペースを、 「a-b d」「a d」の場合は全角スペースを、 それぞれ使ってますよね。 ここら辺はキッチリしておいてください。

rutohamuni
質問者

お礼

不明確な内容があってすいません。他の回答で解決しました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

A2セルから下方にお示しのようなデータが有るとします。 B2セルには次の式を入力してD2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(LEN($A2)-LEN(SUBSTITUTE($A2,"-",""))=2,IF(COLUMN(A1)>3,"",TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2," ",REPT(" ",100)),"-",REPT(" ",100)),1+(COLUMN(A2)-1)*100,100))),IF(LEN($A2)-LEN(SUBSTITUTE($A2,"-",""))=1,IF(COLUMN(A1)>2,"",TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2," ",REPT(" ",100)),"-",REPT(" ",100)),1+(COLUMN(A2)-1)*100,100))),IF(LEN($A2)-LEN(SUBSTITUTE($A2," ",""))>=1,IF(COLUMN(A1)>1,"",TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2," ",REPT(" ",100)),"-",REPT(" ",100)),1+(COLUMN(A2)-1)*100,100))),""))) 式の中で " " と "" が使われていますので間違いのないようにしましょう。上の式をコピーして使ってみてください。 a , b, c などの文字列の中にスペースなどが有る場合には正しく表示されません。

rutohamuni
質問者

お礼

できました。早い返答ありがとうございました。

関連するQ&A

専門家に質問してみよう