- ベストアンサー
エクセル内の数字(金額)を英字に一括変換は可能?
エクセルに入力済みのデータを値札として印刷したいのですが、 原価は数字のままではなく、こちらで任意に設定した英字に変換させたいです。 例えば・・・ 1 →ITI 2 →NI 3 →SAN 4 →SI 5... 0 →REI というように設定して 原価30000円の場合は SANREIREIREIREI と表示させたいです。 (もし可能でしたら・・・1000円未満は切捨てて SANREI とできるでしょうか?) 変換させたい原価は既にエクセルに入力済みです。(6千件位) 数字のままの原価を入力しているセルはそのままで、 隣のセルにでも英字変換させたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! VBAになってしまいますが、一例です。 ↓の画像のようにSheet2に表を作成しておきます。 そしてSheet1の2行目以降にデータがあるとします。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, str As String, buf As String, wS1 As Worksheet, wS2 As Worksheet Set wS1 = Worksheets("Sheet1") Set wS2 = Worksheets("Sheet2") Application.ScreenUpdating = False For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row '←2行目からA列最終行まで buf = "" str = Int(wS1.Cells(i, 1) / 1000) For k = 1 To Len(str) buf = buf & wS2.Cells(Mid(str, k, 1) + 1, 2) Next k wS1.Cells(i, 2) = buf Next i Application.ScreenUpdating = True MsgBox "処理完了" End Sub 'この行まで ※ Sheet1のA列は必ず数値のみで、1000以上の値だとします。 (1000未満の数値がある場合は「REI」と表示されます。) こんな感じではどうでしょうか?m(_ _)m
その他の回答 (3)
- popuplt
- ベストアンサー率38% (31/81)
ちょっと長めになりますが関数で [B1]=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( TEXT(A1,"#"),"1","ITI"),"2","NI"),"3","SAN"),"4","SI"),"5","GO") ,"6","ROKU"),"7","SITI"),"8","HATI"),"9","KYU"),"0","REI") 1000円未満は切捨ててにしたい場合は TEXT(A1,"#")のところを TEXT(A1,"#,") #の後ろに , を1文字追加します。
- tom04
- ベストアンサー率49% (2537/5117)
置換を使えば良いと思います。 原価だけでなく日付けや商品番号などでも数字が使われているようなら、原価の入力されたセルのみを選択した状態で、Ctrl+Fを押して「検索と置換」という表示を出します。 タブを検索から置換に変えます。 検索する文字列を「1」に、置換後の文字列を「ITI」にして、「すべて置換」にします。 これを1~0まで繰り返します。 次に検索する文字列を「REIREI」に、置換後の文字列を「REI」にして、すべて置換します。 ゼロの重なり具合に合わせて最後の操作を何度か繰り返せば、REIが重なる表示もすべてREI一つ表示になります。
お礼
別件での作業ですがこのテクニックが大変役に立ちました。 本当にありがとうございます!
お礼
ご丁寧に画像まで付けてくださいましてありがとうございます。 ご指示のとおりの作業で一括変換することができました。 一番悩んでいた作業だったので、本当に本当に助かりました。