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

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

_Kyleの回答

  • ベストアンサー
  • _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
質問者

お礼

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

関連するQ&A

  • Excelの関数で、ID番号を変更するためのツールを作りたいのですが

    Excelの関数で、ID番号を変更するためのツールを作りたいのですが、 どのような関数を使えばよいのか、どんな式を作ればよいのか教えて いただければ幸いです。 1000 → 1001 2000 → 2001 3005 → 3010 というように、ある数字が入力されたらこの数字を返す、という感じの IF関数でできる簡単なものなのですが、変更するID番号が100個以上 あり、それをすべてまとめて一つの式にしたいのです。 さらに、 1000,2000 → 1001,2001 というような感じで、数字の間に「,」が入るようにしたいのです。 よろしくお願いします。

  • Excelで小数点を表示しつつ、桁区切りもつけたい。

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします! 以前、投稿しましたが間違って削除してしまったのでもう一度投稿させて頂きました。

  • エクセルで文字列の5桁目が9なら0に変更

    エクセル初心者です。 インターネットで調べてみたのですが、同様の質問にヒットしませんでしたので、教えてください。 A列に8桁の会員番号が文字列で表示されています。 この8桁のうち右側の5桁を関数(RIGHT(a8,5))でB列に抽出しています。 抽出された5桁の数字ですが、最上位桁が9の場合、0に変えたいのです。 A        B 01004567    04567  02015678    15678 03098765    98765 → 9を0に入替して「08765」と表示 このような対応が出来る関数を調べたのですが分かりませんでした。 ご教示のほど、よろしくお願いします。

  • Excelで、同じ文字を入力する手間を省きたい

    Excel97を使用しています。 C列に「会員番号」を入力するのですが、 5桁の番号の前に、「0」を5つつけたいのです。 いちいち「0」を打たずに、自動的に頭に5つ 「0」が入るようにしたいのですが…。 「セルの書式設定」の「表示形式」→ 「ユーザー定義」で「"00000"#####」とすれば、 一応そのように表示はされるのですが、 数式バーでは「0」は表示されませんよね? (数字なので…) でも、実際のセルに「00000XXXXX」と入力 されているようにしたいのです。 (C列が、他の数式の参照先になっているので) 「表示形式」を「文字列」にしてしまうと、 「0」がなくなってしまいますし…。 関数はあまりよく分からないのですが、 「0」の5つ入った列と、 数字の入った列を「CONCATENATE」でつないで、 後で「形式を選択して貼り付け」→「値」 にすれば一応出来ますが、 もっと手軽にやる方法はないでしょうか? マクロは全然分からないのですが、 そういったものを使わないと無理なのでしょうか?

  • テキスト形式(.txt)をエクセルで読み込むときに1桁目の「0」を読み込みたい

    タブ区切りで作成されたテキストデータがあります。 これをエクセルで読み込むと、タブ区切りからセル区切りに自動的に変換されますが、 テキストに「0」から始まるデータがある場合、エクセルに変換されると数値として読み取ってしまうので、2桁目以降の0以外の数字を1桁目として認識してしまいます。 つまり、 「テキストデータを「文字列」のデータとしてエクセルで読み取る」 方法を探しています。 ご存知の方、教えてください。 よろしくお願いいたします。

  • Excel 文字列にする関数

    エクセルが苦手なので教えてください! 選別番号で6桁の数字を使っているんですが、頭の数字が0から 始まるものがあり、セルに入力するとその選別番号だけ5桁に なってしまいます。 文字列にすればいいということだけはわかっているのですが、 すでに数字が入っている列に対して、関数を使って以下のような ことはできますか? (1)選別番号が5桁だったら、頭に0をつけて6桁にする、  かつ文字列にする (2)選別番号がすでに6桁だったら、そのまま文字列に変換 宜しくお願いします!

  • Excelのマクロを使って数字を入力したいのですが、方法がわかりません。

    ExcelのG列とI列にランダムに3桁の数字を作成しました(=ROUND(RAND()の数式を使いました)。 あいだのH列には‐(ハイフン)が入力されています。 これらを別のシートの同じ列に形式を“値”と選択してコピーしました。これらの数字をB列に入力したいのです。 具体的には、たとえば、G1セルに265,H1セルに-、I1セルに849と入力されているとしたら、B1セルに265-849と入力されるように設定したいのです。 それぞれの列にはランダムな数字が並んでおり、対応するB列のセルに同様に入力されるように設定したいのですが、方法がわかりません。マクロを使えばよいとのことですが、どなたか詳しく教えてください。 よろしくお願いします。

  • EXCELで 一桁の数値を二桁に

    教えてください。 エクセルで、入っているデータを編集しているのですが A列には、一桁の数値が B列には、1桁から2桁の数値が C列には、1桁から2桁の数値が D列には、文字データが入っています。 D列のデータに対する対応表を作るために このA~C列のデータを CONCATENATE関数を使って合体させたいのですが、 (合体させると、数値がダブらない為) B列とC列に入っている1桁の数値を 2桁に変換したいのですが、 何かよい方法はありませんでしょうか? 手打ちで変換するには、かなり多いデータなのです。 どなたか、助けてください。

  • Excelで小数点も表示し、桁区切り使用したいです

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします!!

  • Excelで小数点も表示し、桁区切り使用したいです

    Excelで資料を作り、2500/本と先に入力し桁区切りをつけたいと思い以前質問させて頂いてなんとか関数を使用し、完成したのですが今度は2500.00/本と先に入力してあって同じように関数を使って桁区切りをしようとすると.00も数字として認識しているようで変な場所に桁区切りがついてしまいます。単位が/本のほかにも/個、/台と色々な単位があります。小数点も表示しつつ、桁区切りも3桁の場所に表示できる方法はないでしょうか。よろしくお願いします!!