- ベストアンサー
文字抽出
エクセル初級者です。マクロは分かりません。 セルに ”漢字 半角スペース (ピンイン表記)” されています。 例)麻婆豆腐 (mápó dòufu) これから漢字とピンインを分けて抽出したい。 対象のセルの列には漢字は1~7文字で文字数に応じてピンインも変化します。 FIND,MID,LEFTなどの関数を調べてみましたが、所望には至りませんでした。 何かアドバイスいただければ有難く。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
A1セルに 麻婆豆腐 (mápó dòufu) が有る場合の例で、 漢字の抽出式は、 =LEFT(A1,FIND(" (",A1)-1) ピンインの抽出式は、 =MID(A1,FIND(" (",A1)+2,FIND(")",A1)-FIND(" (",A1)-2) でいかがでしょうか。
その他の回答 (1)
- NuboChan
- ベストアンサー率47% (785/1650)
>マクロは、分からない ワークシート関数での回答を希望していると思いますが マクロは不要とは回答されていないので 参考ではありますがマクロでの回答を記載します。 A列に 麻婆豆腐 (mápó dòufu) B列に 麻婆豆腐 C列に mápó dòufu Option Explicit Sub 指定文字の前方及び後方を取得() Dim arr As Variant Dim txt As String, txt1 As String, txt2 As String Dim c As Range Dim tlen As Integer For Each c In Range("A1", Cells(Rows.Count, "A").End(xlUp)) txt = c.Value txt1 = Left(txt, InStr(txt, "(") - 1) tlen = Len(txt1) txt1 = Left(txt1, tlen - 1) c.Offset(, 1).Value = txt1 txt2 = Mid(txt, InStr(txt, "(") + 1) txt2 = Mid(txt2, 1) tlen = Len(txt2) txt2 = Left(txt2, tlen - 1) c.Offset(, 2).Value = txt2 Next End Sub
お礼
早速のご助言ありがとうございます。 これを機にこの事例に沿ってマクロを学習したいと思います。 またご指導をお願いします。 ありがとうございました。
お礼
早速のご指導ありがとうございます。 サラッと書かれていて驚いております。 小生、趣味の中国語の学習者です。 対象語が500くらいあり、なんとかエクセルでという事で相談した次第です。 ピンイン抽出式末尾のFIND関数の開始位置を-1にして完成しました。 今回のソースの漢字は簡体字で小生には無用なので別途、それぞれ繁体字化する予定です。