Excel関数で住所の支部番号を表示する方法

このQ&Aのポイント
  • Excel関数を使用して住所の支部番号を表示する方法をご紹介します。
  • ExcelのIF関数とVLOOKUP関数を組み合わせることで、住所の「123市」の支部番号まで表示することが可能です。
  • 具体的な手順としては、「123市」の場合は参照シートの表(2)の範囲から番号を検索し、それ以外の市町村の場合は参照シートの表(1)の範囲から番号を検索します。
回答を見る
  • ベストアンサー

Excel関数を教えてください。

Excel関数を教えてください。 =IF(AA6="123市",VLOOKUP(AA6,参照シート!$Z$2:$AA$8,2,FALSE),VLOOKUP(AA6,参照シート!$T$2:$U$36,2,FALSE)) ↑このような関数を立てました。 市町村番号(自社のもの)を検索したいと思っています。 『もし、123市なら参照シートの表(2)Z2-AA8の番号を、それ以外の市町村なら参照シートの表(1)T2-U36の番号を返せ』と。 “それ以外の市町村”の表示はうまくいきました。 問題は、123市は大きな市で、その中でまた001~006まで支部として分かれています。 住所の「123市◎◎4-5-6」とあるように、◎◎で支部分けされています。 住所はAB6に入力されています。 これを支部番号まで表示できるような関数が作れませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.3

なんとなく分かりました。 別表は ◎◎ | 001 △△ | 002 「|」はセル区切りのような感じで 参照シート!$Z$2:$AA$8 に リストアップされているのですね。 セルAA6には市の入力 セルAB6には市を含む全住所の入力となっているのですか? その場合はちょっと複雑です VLOOKUP関数の一つ目のパラメータを確定させる方法が問題ですね。 セルAA6の「123市」以降の文字をいくつか取得して パラメータとして採用する方法が良いと思われます。 ただ、何文字取るかは支部の名前によって重複しないようにしなければ成りません。 下記は「123市」以降の文字を3文字取ってパラメータ化する方法です。 =IF(AA6="123市",VLOOKUP(MID(AB6,LEN(AA6)+1,3)&"*",参照シート!$Z$2:$AA$8,2,FALSE),VLOOKUP(AA6,参照シート!$T$2:$U$36,2,FALSE)) AA6が12「123市」だった場合に、AB6の全住所から 「123市」分の文字数「LEN(AA6)」を飛ばして3文字取得し その後の文字はワイルドカード(*)で評価させる方法です。 この場合注意が必要なのは「123市」以降の文字が3文字以上無いと エラーとなります。 上記関数における条件 ※支部の名称の一部をパラメータとして使うために  重複しない部の名称の先頭からの文字数を決める。  この時に決めた文字数より短い支部名があるとエラーとなります。 ※AB6に市からの全住所が入力されていること  都道府県名などが入っている場合や市名称がない場合はN/Aになります。

その他の回答 (2)

  • chuchuo
  • ベストアンサー率45% (99/217)
回答No.2

支部ごとにさらに市町村番号のテーブルがあって その場所を返すのですか? 例えば、123市が入力された時だけ、AB6の記入に基づいて番号を返す それとも、支部の番号001~006の番号を返すだけですか?

hops331
質問者

補足

補足します。 AA6が123市以外の時は別表(1)「市町村番号表」の市町村番号を返します。 ↑これはうまく表示できました。 AA6が123市の時は別表(2)「支部番号表」の支部番号を返したいのです。 ↑これが123市の時は『#N/A』のエラー表示になります。 別表は◎◎-001、△△-002のような表になっています。 001,002等の番号を返したいのです。 住所から支部を検索させたいのですが、どのように式に組み込めばいいのか教えてください。 うまく説明できず、すみません。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

次のような式に変えてはいかがでしょう。 =IF(AA6="*123市*",VLOOKUP("*"&AA6&"*",参照シート!$Z$2:$AA$8,2,FALSE),VLOOKUP(AA6,参照シート!$T$2:$U$36,2,FALSE))

hops331
質問者

お礼

いろいろな考え方を持つことができました。 ありがとうございました。

関連するQ&A

  • Excel関数について

    Excel関数を教えてください。 =IF(AA6="123市",VLOOKUP(AA6,参照シート!$Z$2:$AA$8,2,FALSE),VLOOKUP(AA6,参照シート!$T$2:$U$36,2,FALSE)) ↑このような関数を立てました。 市町村番号(自社のもの)を検索したいと思っています。 『もし、123市なら参照シートの表(2)Z2-AA8の番号を、それ以外の市町村なら参照シートの表(1)T2-U36の番号を返せ』と。 “それ以外の市町村”の表示はうまくいきました。 問題は、123市は大きな市で、その中でまた001~006まで支部として分かれています。 住所の「123市◎◎4-5-6」とあるように、◎◎で支部分けされています。 住所はAB6に入力されています。 これを支部番号まで表示できるような関数が作れませんか?

  • エクセル関数について教えてください

    AからZまでのチームにAさんからZさんがそれぞれ点数をつけます。 各チームが対戦して勝ったチーム名を入れるとそれぞれつけた点数を反映させる表をつくりたいのです。 私が使ったのは、 「=VLOOKUP($B$2,sheet1!$B$1:$AH$26,2,FALSE)」 なのですが、この式を横にコピーすると列番号が2のままなので数値が正しく反映されません。 列番号を2,3,4と繰り上げるにはどうしたらいいのでしょうか? それとも使おうとしてる関数が違うのでしょうか? よい方法があれば教えてください。

  • VLOOKUP関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • EXCEL:引数のシート参照を動的に変更したい

    EXCELでこのようなことができるでしょうか? (1)シート1~シート10まで同じフォーマットの入力表があります。 (2)シート11に印刷帳票が作ってあります。帳票の各セルはvlookup関数でシート1~10のそれぞれの該当セルを参照するようになっています。 このとき、出力帳票シートのどこかにリスト型の入力規則で、1~10までのシート番号を入力できる項目を作っておき、それを使ってvlookup関数の引数にあるセル 参照を動的に変更できるでしょうか? たとえば、  VLOOKUP(C5,'シート1'!L10:N40,3) といった関数を、  VLOOKUP(C5,'シート1'!L10:N40,3)        ↓  VLOOKUP(C5,'シート3'!L10:N40,3) といったふうに変更できるとうれしいのです。 よろしくご教示ください。 おねがします。

  • 表引きの関数で困っています

    よろしくお願いします VLOOKUP関数ですが うまく表引きできません  2列の表でA列B列にデーターをいれた表があります D1には 式 =vlookup(D1,A1:B10,2,false))です D1にA1からB101での表を参照して 数値を引っ張っています いつもはうまくいきますが A1が 通し番号の場合はOKで ランダムな数値になりますと 引っ張れません 同じ数値が複数あると 最初のものだけ ひろいます 通し番号でなくて ランダムな数値でも 引っ張るにはどんな関数なんでしょうか サルにもわかるように やさしく 教えてください  

  • Excel シートの参照方法

    Excelを勉強中の者です。 =VLOOKUP(E3,参照表!$A2:$K10,2,FALSE) この参照表というシート名の参照を下記のようなシートのインデックス番号で指定することはできないのでしょうか? =VLOOKUP(E3,worksheets(1)!$A2:$K10,2,FALSE) また、インデックス番号で参照するような、そのままシート名で参照する以外の他の方法がありましたら教えてください。 よろしくお願いします。

  • IF関数で出来ないのかな?

    E13のセルにa,i,u,e,oが入力されたら、AA2:AA28から参照してZ2:Z28を現す事は以下の式でやっとこさ出来ました。 =IF(E13="a",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13:E13="i",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="u",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="e",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="o",(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) が!!! 今度はその逆でE13のセルにa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す事が出来ません!! NOT関数で出来ると思って以下の式を作ったんですけど、 =IF(NOT(E13="a"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="i"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="u"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="e"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="o"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) これだと何故かa,i,u,e,oを含め全てで参照して表してしまいます。 また他にも IF(C13="i",IF(C13="u",IF(C13="e",IF(C13="o","",(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))), (LOOKUP(C13,AA2:AA28,Z2:Z28))) というようにNOT関数を使わずに"真"と"偽"逆にしてみたんですけど 結果はNOT関数と同じでした。 なぜ?分らない・・・。 とりあえずa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す方法を教えて下さい。 そして余裕があれば、NOT関数と"真"と"偽"逆にした時に全てで参照して表してしまうのかも教えて欲しいっす!! ちなみにE13=MID(B3,2,1)となっていて、B3にある文字列から一文字抜いた状態です。

  • VLOOKUP関数 エクセル関数教えてください

    =IF(ISERROR(VLOOKUP(B2,$E$1:$F$296,2,FALSE)),"",VLOOKUP(B2,$E$1:$F$296,2,FALSE)) という関数を入れて、品番をセルに入力して元表から品名を導く表を作成しました。うまく使えています。 これを元に =IF(ISERROR(VLOOKUP(B2,$F$1:$I$1000,2,FALSE)),"",VLOOKUP(B2,$F$1:$I$1000,2,FALSE)) という関数に直して、同じような表を作ろうとしたのですが、うまくいきません。 何が悪いのか分かりません。 どうすればうまくいきますでしょうか?

  • 何かいい関数を教えてください(EXCEL)

    よろしくお願いいたします。 以前に誰かが作ったものを修正しながら栄養価計算の表を作っています。 そこでご質問なのですが、一日ごと使用した調味料を集計しているワークシートがあり、その値だけを他のファイルに抽出したいのですが、(一ヶ月毎の集計で最大23日分です) その日によって使用している調味料が違い、一日ごとに集計しているワークシートはDSUM関数で集計したものをVLOOKUP関数で飛ばしてきているようです。MATCH関数やVLOOKUP関数で試して見たんですが、調味料のワークシートがソートされていないせいか(ソートもできない状態)VLOOKUP関数もうまく返してくれません。最終的にはひと月ごとで使用した調味料の量を計算させたいのです。 おおもとのファイルはこの調味料の計算の他栄養価計算や発注表など 一日ごとの管理をしているので一ヶ月ごとフォルダをつくりその中に 最大の23日分のファイルを管理させ、そこから調味料の計算だけのファイルを作ろうと思っています。 何かいい関数はないでしょうか?よろしくお願いいたします。

  • ExcelのIF関数で条件が7つ以上ネストされる場合の対応方法

    ExcelのIF関数で以下のように条件が7つ以上ネストされる場合の対応方法を教えてください(if関数だと条件が最大7つまでしか指定できない為)。 IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,36,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,10,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,13,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,6,FALSE)),4, IF(ISTEXT(VLOOKUP($A2,sheet1!$B:$AP,38,FALSE)),1, IF(ISTEXT(VLOOKUP($A2,sheet2!$b:$q,12,FALSE)),2, IF(ISTEXT(VLOOKUP($A2,sheet3!$I:$BO,16,FALSE)),3, IF(ISTEXT(VLOOKUP($A2,sheet4!$A:$Z,5,FALSE)),4, 4))))))))

専門家に質問してみよう