エクセルのマクロまたは関数でお願いします。
Sheet2に参照をおきます。
A列 B列
1 青森
2 岩手
3 秋田
C列 D列
1 docomo
2 ezweb
3 softbank
データと答えはSheet1に出します。
A列(データ) B列 C列(答え)
3_01 3 秋田
2_02 2 岩手
1_01 1 青森
上記の参照はSheet2のA列B列です。
データと答えはSheet1に出します。
D列(データ) E列(データ) F列(答え)
aaaa 3 aaaa@softbank
bbbb 1 bbbb@docomo
cccc 2 cccc@ezweb
上記の参照はSheet2のC列D列です。
上記の1行目はいずれも項目行です。
データおよび答えは2行目からにお願いします。
Sub main() Dim a As Long Dim b As Long s1 = "Sheet1" s2 = "Sheet2" For a = 2 To Sheets(s1).Range("A2").End(xlDown).Row c = Sheets(s1).Cells(a, "A") If InStr(1, c, "_") > 0 Then d = Left(c, InStr(1, c, "_") - 1) d = Val(d) For b = 2 To Sheets(s2).Range("A2").End(xlDown).Row If Sheets(s2).Cells(b, "A") = d Then Sheets(s1).Cells(a, "C") = Sheets(s2).Cells(b, "B") Exit For End If Next b End If d = Sheets(s1).Cells(a, "E") For b = 2 To Sheets(s2).Range("C2").End(xlDown).Row If Sheets(s2).Cells(b, "C") = d Then Sheets(s1).Cells(a, "F") = Sheets(s1).Cells(a, "D") & "@" & Sheets(s2).Cells(b, "D") Exit For End If Next b Next a End Sub
下記URLにエクセルワークブックを置きました。
http://rct3jp.info/hatena/hatena_inosisi4141_110429.xls
恐らく、こんな感じで宜しいのではないかと思いますが、いかがでしょうか。
早速ありがとうございます。
下記の答え以外はOKです。
質問の説明が不足していました。
Sheet1の
B列の数字はA列の_の前の数字の部分を抜きだしたものです。
A列の数字1文字または2文字を抜き出して直接参照より答えをC列に
出しても
B列に一旦だしてそれを参照と照合してCの答えにしてもOKです。
Sheet1
A列(データ) B列 C列(答え)
3_01 3 秋田
2_02 2 岩手
1_01 1 青森
11_01 11 群馬
上記はA列の_から前の数字を抜き出してB列に表示する関数があればOKです。
A
よろしくお願いします。
Sub main() Dim a As Long Dim b As Long s1 = "Sheet1" s2 = "Sheet2" For a = 2 To Sheets(s1).Range("A2").End(xlDown).Row c = Sheets(s1).Cells(a, "A") If InStr(1, c, "_") > 0 Then d = Left(c, InStr(1, c, "_") - 1) d = Val(d) For b = 2 To Sheets(s2).Range("A2").End(xlDown).Row If Sheets(s2).Cells(b, "A") = d Then Sheets(s1).Cells(a, "C") = Sheets(s2).Cells(b, "B") Exit For End If Next b End If d = Sheets(s1).Cells(a, "E") For b = 2 To Sheets(s2).Range("C2").End(xlDown).Row If Sheets(s2).Cells(b, "C") = d Then Sheets(s1).Cells(a, "F") = Sheets(s1).Cells(a, "D") & "@" & Sheets(s2).Cells(b, "D") Exit For End If Next b Next a End Sub
ありがとうございました。
D列データを文字列にしてからやるのが良いですね。
途中でエラーに引っかからないように準備が必要でした。
でも上手くゆきましたありがとうございました。
関数でやるより時間がかかるみたいですが後処理が無い分
結果的に早く作業が終わるみたいです。
ありがとうございました。
D列データを文字列にしてからやるのが良いですね。
途中でエラーに引っかからないように準備が必要でした。
でも上手くゆきましたありがとうございました。
関数でやるより時間がかかるみたいですが後処理が無い分
結果的に早く作業が終わるみたいです。