|
1つのシートに羅列しているID番号のデータがあります
B列とC列が関連として括られて表示されています。
やりたいことはC列の親管理番号をA列のID番号に置き換えて
(C8をA8 C14をA14へ置き換えして)
D列に管理と書いてあるセルの左横(場所でいうとC22.C23.C27.C28,C31.C32)
に値を置き換えたいのですが、マクロで自動処理させることは可能でしょうか?
最初、A列のデータをコピーしてC列に貼り付けた後、
一般と管理が含まれている横のセルを空白にするマクロを実行して
そうするとC列に置き換えた親ID番号だけが残るので,あとは、
手動で管理と書かれている横のセルに貼り付ける作業をしていましたが
データ量が1万以上ある時もあるので、
マクロで効率のいい変換の仕方を模索しています。
(関数も試しましたが上記の条件を満たす関数は見つかりませんでした)
まとめると
C列の親ID番号の親管理をA列のID番号に置き換えて
置き換え後、管理と書かれている左横のセルに乗せたい
説明だけで伝わりにくいかもしれませんが
お力添えをお願いします。
参考で、置き換え前と置き換えあとのエクセルの内容と
一般と管理と含まれてる横のセルを空白にするマクロを記述しおきます。
置き換え前
1
2 A列 B列 C列 D列
3 ID番号 予備のID番号 親ID番号 管理別項目
4 00111222 00999888 00999888 一般
5 00111223 00999888 00999888 一般
6 00111225 00999888 00999888 管理
7 00111226 00999888 00999888 管理
8 00111227 00999888 00999888 親管理
9 00111229 00777666 00777666 一般
10 00111230 00777666 00777666 一般
11 00111231 00777666 00999888 管理
12 00111232 00777666 00999888 管理
13 00111233 00777666 00999888 管理
14 00111234 00888777 00888777 親管理
15 00111235 00888777 00888777 管理
16 00111236 00888777 00888777 管理
置き換え後
1
2 A列 B列 C列 D列
3 ID番号 予備のID番号 親ID番号 管理別項目
4 00111222 00999888 一般
5 00111223 00999888 一般
6 00111225 00999888 00111227 管理
7 00111226 00999888 00111227 管理
8 00111227 00999888 親管理
9 00111229 00777666 一般
10 00111230 00777666 一般
11 00111231 00777666 00111227 管理
12 00111232 00777666 00111227 管理
13 00111233 00777666 00111227 管理
14 00111234 00888777 親管理
15 00111235 00888777 00111234 管理
16 00111236 00888777 00111234 管理
Sub 管理空白()
For Each Rng In Selection
If Rng.Value = "管理" Then
Rng.Offset(, -1) = ""
End If
Next
End Sub
Sub 一般空白()
For Each Rng In Selection
If Rng.Value = "一般" Then
Rng.Offset(, -1) = ""
End If
Next
End Sub
|
|