• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelを使って、IDを変更するためのツールを作りたいのですが…)

ExcelでIDを変更するためのツールを作成する方法

このQ&Aのポイント
  • Excelを使って、数字4~5桁のID番号を変更するツールを作成する方法について教えてください。
  • 複数のIDを入力しても対応できるようにしたいです。
  • 関数のみでツールを作成する方法や、VBやマクロを使用する方法について詳しく教えてください。

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

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.3

例えば、参考画像のように  ・$AA$3:$AB$23 の位置に対応表がある。  ・B3セルに変換前の文字列を入力する。  ・C3セルに変換後の文字列を表示する。 とします。 --------------------------------------------------------------------- ●数式だけでやる場合(1度に変換する要素数は10個以内)  C3セル:結果を結合する   =REPLACE(CONCATENATE(N3,O3,P3,Q3,R3,S3,T3,U3,V3,W3),1,1,"")  とする。  D3セル:各要素を切り出す   =VALUE(REPLACE(LEFT($B3,FIND("†",SUBSTITUTE($B3&",",",","†",COLUMN()-COLUMN($C3)))-1),1,FIND("†",SUBSTITUTE(","&$B3,",","†",COLUMN()-COLUMN($C3)))-1,""))  としてM3セルまで右方にフィル。  N3セル:各要素を置き換える   =IF(ISERROR(D3),"",","&IF(ISNA(VLOOKUP(D3,INDEX(VALUE($AA$3:$AB$23),),2,0)),D3,VLOOKUP(D3,INDEX(VALUE($AA$3:$AB$23),),2,0)))  としてW3セルまで右方にフィル。 --------------------------------------------------------------------- ●VBA(ユーザー定義関数)を使う場合(要素数無制限) 下記のようなコードを設置して、  C3セル   =sample(B3,AA3:AB23)  とする。 '--------------------------↓ ココカラ ↓-------------------------- Function Sample(ByVal ogStr As String, ByVal myRng As Range) As String  Dim myAry As Variant  Dim myTbl As Variant  Dim i As Long  Dim j As Long    myAry = Split(ogStr, ",")  myTbl = myRng.Value    For i = 1 To UBound(myTbl)   myTbl(i, 1) = CStr(myTbl(i, 1))   myTbl(i, 2) = CStr(myTbl(i, 2))  Next i    For i = 0 To UBound(myAry)   For j = 1 To UBound(myTbl)    If myAry(i) = myTbl(j, 1) Then     myAry(i) = myTbl(j, 2)     Exit For    End If   Next j  Next i    Sample = Join(myAry, ",") End Function '--------------------------↑ ココマデ ↑-------------------------- Excel2003で動作確認。以上ご参考まで。

jazz-mas01
質問者

お礼

ありがとうございました。 後日試してみます。

その他の回答 (2)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

>1000と入力されたら1001、2000と入力されたら2001、という感じに、入力された数字に対応した、決められた数字に変換してほしいのです。 法則が無いのであれば、変換の対応表などは有るのでしょうか? 方法の一例として A1セル内容をC1セルにコピー C1セルを対象に【区切り位置】で区切り文字【、】データを一旦分割 VLOOKUPなどを利用し変換対応表から変換データを抽出 G1セルに=C1&"、"&D1&"、"&E1&"、"&F1 G1セルをコピーしてB1セルに値のみ貼り付け C1セルからG1セルを削除 上記動作をマクロの記録でマクロ化するとかで可能。 変換法則も変換一覧表も無いようであれば実現不可能です。

jazz-mas01
質問者

補足

変換のための一覧表なら、EXCELベースのものがあります。 一覧表があれば、可能なのでしょうか。

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

ご質問の内容が分かりません、補足ください A列に"1000,1001,1005,1009"と言うのは A1セルに"1000,1001,1005,1009"と入力されていると言う事ですか? B列に"1001,1002,1010,1020"と変換とありますが、 変換の法則は?

jazz-mas01
質問者

補足

質問がわかりにくくて申し訳ありません。 >A列に"1000,1001,1005,1009"と言うのは >A1セルに"1000,1001,1005,1009"と入力されていると言う事ですか? はい、そうです。 >B列に"1001,1002,1010,1020"と変換とありますが、 >変換の法則は? 法則は特にありません。 とある数字が入力されたら、その数字に対応した決められた数字に 変換してくれる、単純な表を作りたいのです。 たとえば、1000と入力されたら1001、2000と入力されたら2001、という 感じに、入力された数字に対応した、決められた数字に変換してほしい のです。 よろしくお願いします。

関連するQ&A