[[20180224215522]] 『任意文字に対照する文字に置き換える』(かっぱ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『任意文字に対照する文字に置き換える』(かっぱ)

初めまして よろしくお願いします。

文字列内から任意文字を探し出し、任意文字に対照する文字に置き換えることが可能でしょうか?

任意文字に対照する文字表

山田 ヤマダ
小川 オガワ
中央 チュウオウ
第一 ダイイチ

おおもとの表
求める結果は→の右のようなカタカナの文字になります。
これを関数を用いて算出することは可能でしょうか?

山田ハイツ   → ヤマダハイツ
コーポ小川   → コーポオガワ
第一中央ビル  → ダイイチチュオウビル

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 参考に成ると思います。
http://www.excel.studio-kazu.jp/func/phonetic.html

 2007での振り仮名設定
https://121ware.com/qasearch/1007/app/servlet/qadoc?QID=009244

 2010での振り仮名設定
https://121ware.com/qasearch/1007/app/servlet/qadoc?QID=012159

 尚、セルを選択して、Shift + Alt + ↑ でも編集はできます。
 一個一個設定するのが面倒なら、この学校の過去ログにやり方やマクロが
 あるので、「ふりがな」で検索してみては。
 ただ、名前には色々な読み方があるので、それが正解とは限りません。

 中間のスペースは、REPLACEやSUBSTITUTEで消せますから、調べてみてください。
 (BJ) 2018/02/24(土) 22:46


ご指摘ありがとうございます

ただ、おおもとの表に記載されてる建物名称は
手入力ではなく機械的に登録されたデータのため
PHONETIC関数で「かな」を表示できません。

対照表

   [A]   [B]
[1]山田 ヤマダ 
[2]小川 オガワ 
[3]中央 チュウオウ 
[4]第一 ダイイチ

おおもとの表

   [A]          [B]
 第一中央ビル  → ダイイチチュオウビル 

おおもとの表A列の文字から、対照表A列の文字を探し出し
対照表B列の文字に置き換えることができれませんか?

(かっぱ) 2018/02/24(土) 23:42


 ああ、先読みして勘違いしてました。
 すみません。
(BJ) 2018/02/25(日) 00:04

 掟破りのユーザー定義関数!
Option Explicit
Function 参照範囲から置換する(ByVal r As Range, ByVal rr As Range) As String
    Dim MyA As Variant
    Dim MyDic As Object
    Dim v As String
    Dim x As Variant
    Dim i As Long
    Set MyDic = CreateObject("Scripting.Dictionary")
    MyA = rr.CurrentRegion.Resize(, 2).Value
    For i = LBound(MyA, 1) To UBound(MyA, 1)
        MyDic(MyA(i, 1)) = MyA(i, 2)
    Next
    x = MyDic.Keys
    v = r.Value
    For i = LBound(x) To UBound(x)
         v = Replace(v, x(i), MyDic(x(i)))
    Next
    参照範囲から置換する = v
    Set MyDic = Nothing
    Erase MyA, x
End Function

 =参照範囲から置換する(A1,$E$1:$F$4)

 コーポ小川	コーポオガワ
 山田ハイツ	ヤマダハイツ
 第一中央ビル	ダイイチチュウオウビル
 山田ハイツ中央	ヤマダハイツチュウオウ

 そりゃないぜ!セニョーラ!セニョリータ!
v(=∩_∩=)v
(SoulMan) 2018/02/25(日) 01:28

SoulManさん ありがとうございます
なんか出来そうな気がします・・・ ただ・・

ご提示いただいた構文を利用するスキルを持っていないので
少しばかり教ええいただけますか?

構文から読み解いた表のイメージ
[A][B]がおおもとの表 マクロ処理後の値は[B}に吐き出される
[E][F]が参照表

    {A]             [B]  [C]  [D]       [E]      [F]
{1} 小川コーポ				山田	ヤマダ
{2} 山田ハイツ				小川	オガワ
{3} 第一中央ビル			    中央	チュウオウ
{4} 中央山田マンション			第一	ダイイチ

認識あっていますか?

(かっぱ) 2018/02/25(日) 09:53


 こんにちは!
=参照範囲から置換する(A1,$E$1:$F$4)
なので、
[A]がおおもとの表
[B}に吐き出される➡関数を入れたセル  どこでもOK
[E][F]が参照表 ➡これは合ってます
解決されるといいですね
頑張って下さいね では、では、
v(=∩_∩=)v
(SoulMan) 2018/02/25(日) 12:51

SoulMans様
結果を表示することが出来ました!
計算式によって値が表示された時は金メダル級の感動でした。

マクロの底知れぬ奥深さを感じることができましたので

大変ありがとうございました

(かっぱ) 2018/02/25(日) 16:49


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.