• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「""」内にある空白に「_」アンダーバーを挿入)

Excel2010での関数で半角空白にアンダーバーを挿入する方法

このQ&Aのポイント
  • Excel2010での関数を使用して、半角の空白にアンダーバーを挿入する方法を教えてください。
  • 現在、SUBSTITUTE関数を使用して空白を置換していると、全ての空白にアンダーバーが挿入され、望んだ形になりません。
  • 質問箱には括弧内の文字を抽出する関数が多くありますが、半角の空白にアンダーバーを挿入する関数についての情報は見つかりませんでした。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (780/1632)
回答No.3

関数のみでやってみました。 B11 =FIND("""",A11) C11 =FIND("""",A11,B11+1) D11 =MID(A11,B11+1,C11-B11-1) E11 =LEFT(A11,B11)&SUBSTITUTE(D11," ","_")&MID(A11,C11,100) でE11 に結果が入ります。 これを1つの関数にすると、 =LEFT(A11,FIND("""",A11))&SUBSTITUTE(MID(A11,FIND("""",A11)+1,FIND("""",A11,FIND("""",A11)+1)-FIND("""",A11)-1)," ","_")&MID(A11,FIND("""",A11,FIND("""",A11)+1),100) とやたら長くなります。メンテナンスが大変なので、私ならやりません。 両方とも、""で囲まれたのが1か所だけ、2か所目以降は無視されます。 2か所以上あるなら、VBA を使わないと無理です。 注意:最後の100 は100 文字あれば大丈夫だろうという想像です。文字列が長い場合、最後まで表示されないこともあります。その場合、数字を増やしてください。

saomeet
質問者

お礼

SI299792様。 回答ありがとうございました。 セルのそれぞれに結果を入れるとどう言う動きをするのかが分かり 大変勉強になりました。 関数1つなら理解出来るのですが、ネストになるとお手上げで。 ネストの考え方を勉強する必要があると感じました。 確かに、関数としては「やたら長い」ですが、意図した回答になり 大変満足しています。 ありがとうございました。

saomeet
質問者

補足

意図した回答になったので、 こちらの回答をベストアンサーとさせて頂きます。 ありがとうございました。

その他の回答 (4)

回答No.5

【Excel関数版】"|_"を元に戻す =SUBSTITUTE(SUBSTITUTE(A1, " ","_"), "|_", "| ")  朝に同じ式を書いて数度テストしたのですが首尾良い結果を得られませんでした。そこで、CutStr()を使ってみました。で、夜にもう一度アタック。で、成功。CutStr()よりこっちですね。

saomeet
質問者

お礼

f_a_007様。 3回の回答ありがとうございました。 私の書き方がダメなのか、意図した回答を得る事が出来ませんでした。 何度も回答して下さったのに、ごめんなさい。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

=SUBSTITUTE(A1," ","_",1) をB1に入れる。 A1セルのデータ例 asd fghj (fの前に半角スペース)-->B1の結果 asd_fghj 元データはA1セル。関数式は別セルに入れる(常識)、例B1。 最後の引数の1は、1番目に見つかったものを対象にする。 ーー 2,3番目も可能。その際は同じ関数でネストする。 例 =SUBSTITUTE(SUBSTITUTE(A2," ","_",1)," ","_",1) 他に置き換えた結果を対象にするので第4引数は1でよい。 A2データ例 asd f ghj (fの前後に半角スペース) ー-> asd_f_ghj

saomeet
質問者

お礼

imogasi様。 回答ありがとうございました。 試してみた所、 │__│__│__│__└─"ABC_DE" と、なってしまい意図した結果が得れませんでした。 折角、回答下さったのに私の理解不足だと思います。 ごめんなさい。ありがとうございました。

回答No.2

【訂正】 =CutStr(A1, """", 1) & """" & SUBSTITUTE(CutStr(A1, """", 2), " ", "_") & """" 左右を合成する際の 《& """"》の位置が間違っていました。

回答No.1

 Excel は操作経験のない70歳になる爺ですので考え方だけ・・・  添付図の式は、次のようです。 =CutStr(A1, """", 1) & """" & SUBSTITUTE(CutStr(A1, """", 2) & """", " ", "_") 式では、 1、ダブルクォーテーションの左側と右側に分割。 2、ダブルクォーテーションの右側のみ置換。 3、左側と右側を合成。 しています。  私は、ダブルクォーテーションの左側と右側に分割するのに以下のCutStr()を利用しています。そこをExcelの関数で行えばOKなんではないでしょうか・・・ Public Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs(N <= UBound(strDatas))) End Function

saomeet
質問者

お礼

f_a_007様 早々の回答ありがとうございます。 まだ始業前でデスクに付けないので、 始業後試してみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう