teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

画像を分かりやすく変更し、問題点の説明も分かりやすく追加しました

2019/11/12 14:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  ![イメージ説明](230ecbcd711e7d697bb0ab08ae93170d.png)
8
8
 
9
9
  **②Sheet2**
10
- ![イメージ説明](74114b4722e29d56ca45f4ef054a0281.png)
10
+ ![イメージ説明](acbbf583c831a3ab23600d3a3c8cf485.png)
11
11
 
12
12
  **③結果**
13
13
  ![![イメージ説明](91ed977dfebae9d47458a700bc75d12f.jpeg)説明]
@@ -23,7 +23,7 @@
23
23
  上記A列に「Total」を結合させた文字列をメインキーとして、
24
24
  下記の図A1~B6の範囲をVlookupの検索範囲としたいが、
25
25
  A列にスペースが入っているためきちんと参照できていない
26
- ![![イメージ説明](da7007a510ccb26ff63ccd2ffdd3f4da.jpeg)
26
+ ![イメージ説明](934fa9f403bb5f579bc85b6b7784241f.png)
27
27
 
28
28
  ### 【コード】
29
29
  ```ここに言語を入力
@@ -82,6 +82,7 @@
82
82
  'Vlookup
83
83
  Dim ret As String
84
84
 
85
+     '★★★
85
86
  ret = WorksheetFunction.VLookup(MainKey, subTbl, 2, False)
86
87
  ws_MainSheet.Range(Assin_col & cnt).Value = ret
87
88
 
@@ -112,12 +113,18 @@
112
113
  しかし、今回はSheet2のA列にスペースが入っているのでちゃんと動きません。
113
114
  (スペースは全角、半角、または半角を2つなど色々なパターンがあります)
114
115
 
116
+ もしSheet2のA列にスペースがなくて、例えば「1月Total」と言うデータになっていれば
115
- ワイルドカード使えば?とおっしゃる方もいると思いますが、今回は**検索範囲あらかじめsubTblセットしている**のどうやればいいのかも分かりせん
117
+ Sheet1のA列に「Total」結合させた文字列キーにしてすぐにVlookupが
116
118
 
117
- subTbl対してスペースを削除できいいすが、subTblはA列だけでなくB列も入っているのでできないようです。
119
+ でも、Sheet2のA列にスペースがあるからそが難しうことっていす。
118
120
 
121
+ なお、ワイルドカードを使えば?とおっしゃる方もいると思いますが、今回は**検索範囲をあらかじめsubTblにセットしている**のでどうやればいいのかも分かりません。
122
+
119
123
  Vlookup関数を動かす前にあらかじめSheet2のA列からスペースを削除しておけばいいのだと思いますが、どうやればいいのかなと悩んでいます。
120
124
 
125
+ **でもSheet2の方でA列のデータをコピーし、新しくC列に貼り付けて、そこでスペースを削除する、
126
+ その後、C列に対してVlookupを使うというのは不可、です。**
127
+
121
128
  どうやればSheet2のA列のスペースを削除した上でVlookup関数を動かすことができるのでしょうか?
122
129
 
123
130
  ちなみに、**別の列にあらかじめスペースを削除した値を貼り付けるというのはしないものとします**。

1

勘違いしている人がいるので、もっと詳しく書きました!

2019/11/12 14:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,14 @@
17
17
  1:①のSheet1のA列に「Total」を結合させた文字列を作成
18
18
  2:1の文字列をキーにしてVlookupでSheet2のA列を探し、見つかったらB列の値を①のD列にセット
19
19
 
20
+ ### 【悩んでいること】
21
+ ![イメージ説明](4af72591f2166e9ca89416b9ef8be0b5.jpeg)
22
+
23
+ 上記A列に「Total」を結合させた文字列をメインキーとして、
24
+ 下記の図A1~B6の範囲をVlookupの検索範囲としたいが、
25
+ A列にスペースが入っているためきちんと参照できていない
26
+ ![![イメージ説明](da7007a510ccb26ff63ccd2ffdd3f4da.jpeg)
27
+
20
28
  ### 【コード】
21
29
  ```ここに言語を入力
22
30
  Option Explicit
@@ -100,15 +108,19 @@
100
108
 
101
109
 
102
110
  ### 【問題点】
103
- 上記のコードだと、Sheet2のA列にスペースがない場合は問題なく動きます。
111
+ 上記のコードだと、**Sheet2のA列にスペースがない場合は問題なく動きます**
104
112
  しかし、今回はSheet2のA列にスペースが入っているのでちゃんと動きません。
105
113
  (スペースは全角、半角、または半角を2つなど色々なパターンがあります)
106
114
 
107
- **ワイルドカードを使えば?とおっしゃる方もいると思いますが、今回は検索範囲をあらかじめsubTblにセットしているのでどうやればいいのかも分かりません。**
115
+ ワイルドカードを使えば?とおっしゃる方もいると思いますが、今回は**検索範囲をあらかじめsubTblにセットしている**のでどうやればいいのかも分かりません。
108
116
 
117
+ subTblに対してスペースを削除できればいいのですが、subTblはA列だけでなくB列も入っているのでできないようです。
118
+
119
+ Vlookup関数を動かす前にあらかじめSheet2のA列からスペースを削除しておけばいいのだと思いますが、どうやればいいのかなと悩んでいます。
120
+
109
121
  どうやればSheet2のA列のスペースを削除した上でVlookup関数を動かすことができるのでしょうか?
110
122
 
111
- ちなみに、別の列にあらかじめスペースを削除した値を貼り付けるというのはしないものとします。
123
+ ちなみに、**別の列にあらかじめスペースを削除した値を貼り付けるというのはしないものとします**
112
124
 
113
125
  どなたかご存知の方教えていただけると幸いです。
114
126
  それではどうぞよろしくお願いいたします。