No.1
- 回答日時:
このPCではExcelが使用できないので大雑把になりますが、
数値と文字の対応表をシートに作成し、そこをlookup関数で参照すればいいと思います。
参考URL:http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
No.2
- 回答日時:
>101 → りんご
>1A2 → みかん
これだけなら、隣の列にVLOOKUP関数を並べてりんごやミカンを計算して表示させるのがふつーのエクセルの使い方です。
が、
>101,1A2 → りんご,みかん
こういう何でもアリな事をしたいというのでしたら、一般的な簡単操作ではできません。
次の通りに操作してください。
手順:
シート2のA列に101や1A2を列記する
隣のB列にりんごやミカンを並べておく
シート1に101や1A2や101,1A2を記入する
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける
sub macro1()
dim h as range
on error resume next
for each h in worksheets("Sheet2").range("A1:A" & worksheets("Sheet2").range("A65536").end(xlup).row)
worksheets("Sheet1").cells.replace what:=h.value, replacement:=h.offset(0, 1).value, lookat:=xlpart
next
end sub
ファイルメニューから終了してエクセルに戻る
ALT+F8を押し、マクロ1を実行する。
#説明
101をりんごに、1A2をみかんに、それぞれ丁寧に置換の操作をしていけば、特に難しい操作は何もなしに結果を得られます。
でも手を動かすのはメンドクサイので、マクロでそれを自動でつるつるっとやらせます。
No.3
- 回答日時:
101,1A2のような文字が有る場合には関数で対応するよりもマクロで置換の操作をするのがよいでしょう。
例えばA1セルからA100セルにかけてお示しのような文字が並んでいるとして、D1セルから下方に101,1A2のように文字が入力されておりE1セルから下方に対応するりんご、みかんなどの文字が並んでいるとしたら次のようにすればよいでしょう。
シート見出しで右クリックして「コードの表示」を選択します。
表示の画面の右側に次のコードを入力します。
Sub 置換()
Dim i As Integer
Range("a1:a100").Select
For i = 1 To Cells(Rows.Count, "d").End(xlUp).Row
Selection.Replace What:=Cells(i, "d"), Replacement:=Cells(i, "e"), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next i
Range("a1").Select
End Sub
マクロの操作は「開発」タブの「マクロ」から「置換」を選択して「実行」をクリックすればよいでしょう。
No.4ベストアンサー
- 回答日時:
こんにちは!
横からお邪魔します。
↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。
Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。
Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As String, myArray
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
wS1.Columns(2).ClearContents
For i = 1 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = ""
If InStr(wS1.Cells(i, 1), ",") > 0 Then
myArray = Split(wS1.Cells(i, 1), ",")
For k = 0 To UBound(myArray)
Set c = wS2.Columns(1).Find(What:=myArray(k), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
buf = buf & wS2.Cells(n, 2) & ","
Next k
wS1.Cells(i, 2) = Left(buf, Len(buf) - 1)
Else
Set c = wS2.Columns(1).Find(What:=wS1.Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
wS1.Cells(i, 2) = wS2.Cells(n, 2)
End If
Next i
End Sub 'この行まで
こんな感じではどうでしょうか?m(_ _)m
No.5
- 回答日時:
こんにちは。
以前作った関数です。
---ここから、VBAのコード---
Function a_vlookup(s As String, r As Range, c As Integer, f As Boolean) As String
Dim ss() As String
Dim i As Integer
Dim aa As String
aa = ""
ss = Split(s, ",")
For i = LBound(ss) To UBound(ss)
On Error Resume Next
ii = CInt(ss(i))
If Err.Number = 0 Then
aa = aa & WorksheetFunction.VLookup(ii, r, c, f) & ","
Else
aa = aa & WorksheetFunction.VLookup(ss(i), r, c, f) & ","
End If
Err.Clear
On Error GoTo 0
Next
aa = Left(aa, Len(aa) - 1)
a_vlookup = aa
End Function
---コードここまで---
標準モジュールにコードを張り付けて、セルに一般の関数と同じように
=a_vlookup( … と入力します。
引数は、vlookupと同じです。(ただし、第4引数の省略は不可になっています。省略する場合はコードを改造してください。)
No.6
- 回答日時:
もしも、変換すべき文字列の種類数が少ない場合は、VBA ではなく手動での置換(Ctrl+H)でもいいですね。
置換したいセル範囲を選択した状態でこのショートカットキーを押し、表示されるダイアログ中のオプションボタンを必要に応じて押せば、No.2 さん・No.3 さんのコードと同じ処理ができます。お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- Windows 95・98 Excelでアルファベットの大文字をうちたい 2 2023/03/13 17:00
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- その他(Microsoft Office) Microsoft Excelの文字変換で教えて下さい。 商社勤務です。 営業マンと言う言葉と○万な 2 2022/04/23 11:14
- Excel(エクセル) Excelの数式の質問です。 A列に「redhat 8.0, centOS 7.9, python 4 2023/05/12 19:38
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excelで連続印刷をするマクロ
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
Excel2007で、太字にした行のみ...
-
エクセルで全ての数字間にカン...
-
100行のセルの高さを一括で調整...
-
EXCEL マクロで「キーワード入...
-
wordのvbaでハイパーリンク設定...
-
エクセル VBA 小数点を含む数字...
-
エクセルで、行ごとの並び替え...
-
Excel2007 セルを右方向に削除...
-
任意の1行を選択していないと...
-
「マクロ」の足し算の式を教え...
-
yyyy/mm/ddの日付に一括変換す...
-
エクセル2000でこんなマク...
-
値貼り付けをしても書式も貼り...
-
並べ替えのマクロで対象行の範...
-
マクロまたは他の方法でで自動転記
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excelでセル内の数式は残し値だ...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
(Excel2003)すぐ左の最後の行...
-
Excel(VBA)データ入力に応じて...
-
Excel にて非表示行を探すワー...
-
エクセルで、行ごとの並び替え...
-
エクセル2003でマクロをおこな...
-
excel ある部分だけをコピペし...
-
行の入れ替えってどうするの?
-
Excelで周期的に列を削除する方法
-
整数行を残し小数点の行を削除...
-
EXCEL マクロで「キーワード入...
-
VBA コピーを有効行までループ...
-
Excel2007 セルを右方向に削除...
-
wordのvbaでハイパーリンク設定...
おすすめ情報