初歩的な質問ですが。。。
あるセルに住所を入力すると、その隣のセルに支店担当者表に対応する支店と担当者の名前が入力される様にする方法を探しています。
具体的には、、、
支店担当者表は"福岡県""九州""山田"という様に、"住所(都道府県)""支店名""担当者"の順に並んでいます。
この表を利用して、"福岡県福岡市~"と入力すると自動的に隣とその隣のセルに"九州""山田"と入力すようにしたいのです。
VLOOKUP関数を使って見たのですが、"福岡県"など都道府県だけの入力ですとうまくいくのですが、"福岡県福岡市~"と県の後を入力すると#N/Aエラーが出てしまいます。
友人が言うにはLEFT関数を併用すればうまくいくとの事ですが、調べて見ても良くわかりません。
又、可能ならば住所を未入力のセルには#N/Aエラーの文字が表示されない様にしたいです。
わかり難い説明かもしれませんが、どなたか回答お願い致します。
No.4ベストアンサー
- 回答日時:
支店担当者表というシートの
A列に都道府県名、B列に支店名、C列に担当者名だとして、
同ファイルの別シート(便宜上検索用シートとします)で、
A列に住所を入力すると、B列に都道府県名、B列に支店名、C列に担当者名と表示される様に考えてみます。
検索用シートのB列は、A列から都道府県名を抜き出す関数を考えます。
B1セルに
=LEFT(A1,IF(AND(LEN(A1)>2,ISNUMBER(FIND(MID(A1,3,1),"都道府県"))),3,IF(AND(LEN(A1)>3,ISNUMBER(FIND(MID(A1,4,1),"県"))),4,0)))
これでコピペしてください。
これで都道府県名を取り出せると思いますので、これを使ってVLOOKUPしましょう。
C1セルは
=IF(ISERROR(VLOOKUP(B1,支店担当者表!A:C,2,FALSE)),"",VLOOKUP(B1,支店担当者表!A:C,2,FALSE))
D1セルは
=IF(ISERROR(VLOOKUP(B1,支店担当者表!A:C,3,FALSE)),"",VLOOKUP(B1,支店担当者表!A:C,3,FALSE))
で、1行は出来ましたね。
必要に応じて、この行を下方向にコピーしてください。
素早い回答ありがとうございました。
皆様の回答を参考に
IF、ISERROR、VLOOKUP、LEFT関数を使用したところ
うまくできました。
又、今回使用しなかった関数も勉強になりました。
ありがとうございました!!
No.6
- 回答日時:
No.5
- 回答日時:
こんにちは。
マクロ使用の是非はともかく、解決方法のひとつとしてご参考になれば、と思います。
1. 都道府県の抽出にはユーザー定義関数を用いる
2. VLOOKUP関数のエラー値の非表示について
-->条件付書式にISERROR関数を用いて、表面上見えなくする
<前提>
下にある、ユーザー定義関数 GetPrefName を標準モジュールに貼付け
シート[データ] A列:住所 B列:都道府県 C列:支店名 D列:担当者
シート[支店担当者表] A列:都道府県 B列:支店名 C列:担当者
<具体的な方法>
シート[データ]の各セルに次の関数式を記入します。
B1セル =GetPrefName($A1)
C1セル =VLOOKUP($B1,支店担当者表!$A:$C,2,FALSE))
D1セル =VLOOKUP($B1,支店担当者表!$A:$C,3,FALSE))
<エラー値の非表示>
条件付書式の数式にISERROR関数を用いて、背景色と文字色を同じ色にすることで、表面上見えなくします。参考URLをご覧ください。
IF関数とISERROR関数の組み合わせでも非表示とすることはできますが、計算式が複雑になるのでお勧めしません。
以下、ユーザー定義関数。
'*****************************************************************
' 都道府県抽出
'*****************************************************************
Function GetPrefName(住所文字列 As String)
Dim strPref As String
Dim N As Long
strPref = Left(Trim(住所文字列), 3)
Select Case strPref
Case Is = "東京都", "北海道", "大阪府", "京都府"
N = 3
Case Else
N = InStr(Left(住所文字列, 4), "県")
End Select
'都道府県が検出されない場合データ不足エラーとして#VALUE!を返す
If N > 0 Then
GetPrefName = Left(住所文字列, N)
Else
GetPrefName = CVErr(3) '3:#VALUE!
End If
End Function
No.3
- 回答日時:
住所から都道府県名のみを取得する方法はエクセルにおいて永遠のテーマとなっております。
ほかの方たちも書かれているように一工夫必要です。
これをエクセルで自動的に行うのは並大抵のことではありません。
----------------------------
=IF(MID(A1,4,1)="県",LEFT(A1,4),LEFT(A1,3))とかね
でもこれは、4文字目に県が来るのが神奈川、和歌山、鹿児島のみの場合しか使えません。市町村名の最初に「県」がある都道府県は使えません
----------------------------
それより入力時点で都道府県を分ける方が賢明でしょう。
そうすれば、あなたの言うとおりVLOOKUPでいけます。
素早い回答ありがとうございました。
皆様の回答を参考に
IF、ISERROR、VLOOKUP、LEFT関数を使用したところ
うまくできました。
又、今回使用しなかった関数も勉強になりました。
ありがとうございました!!
No.2
- 回答日時:
A1が住所として
IF関数、LEFT関数、VLOOKUP関数を使えば上手くできると思います。
例)=IF(A1=0,,VLOOKUP(LEFT(A1,3),$H$1:$J$5,2,FALSE))
(説明)
もしもA5が0ならば0を、0でなければ、VLOOKUPの結果を表示する。
VLOOKUPの検索値はA5の左から3番目までの文字にする
都道府県レベルが全国区の場合、3文字じゃだめなものもありますので、完全ではありません。
一番手っ取り早いのは郵便番号で管理するのが望ましいです。
郵便番号のデータは無いのでしょうか?
例えば…
(1)郵便番号、(2)都道府県、(3)市区名、(4)町名、(5)支店名、(6)担当者名
のテーブルを作っておけば、郵便番号さえわかれば、簡単なVLOOKUPで
検索が可能です。
未入力欄の非表示は上記ようにIF関数で解決できると思います。
上記の式では、未入力欄に「0」が表示されますが、
ツール→オプション→表示のゼロ値(Z)のチェックをはずしてやると0も表示されなくなりますよ。
この回答への補足
素早い回答ありがとうございました。
皆様の回答を参考に
IF、ISERROR、VLOOKUP、LEFT関数を使用したところ
うまくできました。
今回使用しなかった関数も勉強になりました。
ありがとうございました!!
No.1
- 回答日時:
頭から3桁目まで判定してみては?
A1が住所として
=VLOOKUP(LEFT(A1,3),範囲,列番号,検索の型)
※範囲において神奈川、和歌山、鹿児島のみ県を省いておく
>又、可能ならば住所を未入力のセルには#N/Aエラーの文字が表示されない様にしたいです。
=IF(COUNTIF(範囲の左の列,LEFT(A1,3)),"",VLOOKUP(LEFT(A1,3),範囲,列番号,検索の型))
素早い回答ありがとうございました。
皆様の回答を参考に
IF、ISERROR、VLOOKUP、LEFT関数を使用したところ
うまくできました。
又、今回使用しなかった関数も勉強になりました。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 転職 長く続けられる好条件の求人でしょうか? 3 2023/07/12 18:45
- その他(芸能人・有名人) Aチームオーディション(モデル)についてで す。最終審査は47都道府県でやっていると聞 いたのですが 3 2023/01/14 18:07
- 転職 下記のような募集は、良い会社でしょうか?どう思いますか?入ってみたら良くない事が無いでしょうか? 4 2023/03/03 16:40
- その他(宿泊・観光) 北海道札幌市 神奈川県横浜市 愛知県名古屋市 大阪府大阪市 京都府京都市 兵庫県神戸市 福岡市福岡市 3 2023/01/29 18:14
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- その他(就職・転職・働き方) 普通雇用の障害者枠で採用されるのって、難しいですか? 1 2022/08/08 19:11
- 温泉 山梨県石和温泉日帰り入浴 1 2023/04/06 17:46
- その他(行事・イベント) 山口きらら博が成功して、北九州博覧祭が失敗したのはなぜですか? 2001年 興行収入 2 2023/08/27 08:43
- Excel(エクセル) 住所から都道府県名を記入する 5 2022/04/03 16:48
- Excel(エクセル) エクセルで値ではなく関数を参照する方法 6 2023/03/19 00:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
【Microsoft Office Excel Comp...
-
Excelが固まってしまった。
-
西暦や和暦の表示をyyyymmdd表...
-
Excel 2019 のピボットテーブル...
-
【関数】スペースがいくつ入っ...
-
【Excel】セル内の時間帯が特定...
-
excelの不要な行の削除ができな...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
Excel初心者です。 詳しい方、...
-
エクセルの行の抽出について質...
-
Excel初心者です。 詳しい方、...
-
【マクロ】エクセルにかいてあ...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシート クエリ関数 1...
-
エクセルで指定した日付、店舗...
-
Excelのグラフ軸について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報