- ベストアンサー
空白と特定の文字を消したいのですが
関数を教えてください。 A1 株式会社 ○○ A2 △△ 株式会社 A3 有限会社 ×× とあります。 B列セルに、中のスペースを消して、 なおかつ空白抜きのふりがな(カブシキカイシャマルマル)とうちたいのですができますか? あとC列に、”株式会社””有限会社”の文字と空白だけ消した値(○○、△△、××) を出すにはどうしたらいいでしょうか? 元データの”株式会社 ○○・・・”は残したいので置換え以外の方法で教えてくださるとありがたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>元データの”株式会社 ○○・・・”は残したいので置換え以外の方法で教えてくださるとありがたいです。 A1をB1に置換すれば済むだけ。 元データは残したいも何もないのでは??? それに置換以外の方法なんてないでしょう。 どういう意味なのかな??? 株式会社_○○|○○|カブシキガイシャマルマル △△_株式会社|△△|サンカクサンカクカブシキガイシャ 有限会社_××|××|ユウゲンガイシャカケルカケル ちょっと、興味を引いたのでこういう結果を得る2つの関数を作成してみました。 =PurgeChar(A1, "株式会社,有限会社, , ") =Furigana(PurgeChar(A1, " , ")) もちろん、エクセルの既存の関数でも処理できます。 しかし、問題は、次のように非常に長い関数を書かなければならないこと。 =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "株式会社", ""), "有限会社", ""), " ", "")," ","") こういう関数を書けば、B1をズズーッで実現できま、PurgeChar関数を用いなくてもOKかと思います。 ですから、問題は、関数の長さの気持ちの上での許容範囲です。 Public Function PurgeChar(ByVal text As String, ByVal CharList As String) As String Dim I As Integer Dim N As Integer Dim strChar() As String strChar = Split(CharList, ",") N = UBound(strChar()) For I = 0 To N text = Replace(text, strChar(I), "") Next I PurgeChar = text End Function Public Function Furigana(ByVal text As String) Furigana = Application.GetPhonetic(text) End Function
その他の回答 (2)
私自身、エクセルは操作したことがないので余り教える立場にないですが・・・。 1、下のシートタグを右クリックして[コードの表示(V)]を左クリックします。 2、メニューの[挿入(I)]-[標準モジュール]をクリックします。 3、そうするとカーソルがピコピコします。そこに、2つの関数をコピペします。 4、右上の[X]をクリックしてVBエディタを閉じます。 これで、通常の関数と同じように使える筈です。
お礼
ばっちり出ました! ありがとうございます。 またよろしくおねがいします。
- ryuujiok2205
- ベストアンサー率21% (233/1098)
置換を使ってください。 > 元データの”株式会社 ○○・・・”は残したいので 置換を使うときの原則ですが、まずその列をコピーします。そちらで置換するのが原則です。元データを残さなくてもよいにしても、万一失敗したらどうしますか? 「元に戻す」のは最後の手段です。
お礼
早い回答ありがとうございます。 今後もデータを増やしていくので、 置換だと毎回指示なのが面倒で・・・ 出来ればデータ入力=処理となるようにいけたらなと思いまして。。
お礼
早い回答ありがとうございます。 >2つの関数を作成してみました。 >=PurgeChar(A1, "株式会社,有限会社, , ") >=Furigana(PurgeChar(A1, " , ")) ”#NAME?”と出るのですが どうやって使ったらいいのでしょうか? 下のプログラムの使いかたも教えてください。 VBAとかあまり詳しくないので お手数ですがお願いします。