[[20180515222354]] 『関数の短縮』(す〜) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『関数の短縮』(す〜)

 お世話になります。
 複数の関数を&で繋げています。
 これって短縮して設定することは出来るのでしょうか?
 教えてください。
 シート数は実際は全部で10以上あります。

 A列に「JA11」と入力したら「JA11第1営業」シート内を、
 「JA12」と入力したら「JA12第2営業」シート内を、
 「JA21」と入力したら「JA21販売部」シート内を、
 VLOOKUPでデータ抽出する。

 =IF(A3="JA11",VLOOKUP(C3,JA11第1営業!$M$3:$R$600,2,FALSE),"")&IF(A3="JA12",VLOOKUP(C3,JA12第2営業!$M$3:$R$600,2,FALSE),"")&IF(A3="JA21",VLOOKUP(C3,JA21販売部!$M$3:$R$600,2,FALSE),"")

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 検索範囲が全シート同一なら、INDIRECT関数で処理できます。

 どこかに対照表を作り、その文字列を利用する。
  
 D3セル =IF(A3="","",VLOOKUP(C3,INDIRECT(A3&VLOOKUP(A3,$F$1:$G$4,2,FALSE)&"!$M$3:$R$600"),2,FALSE)&"")

  行  __A__  _B_  ___C___  _____D_____  _E_  __F__  ____G____
   1                                         JA11   第1営業 
   2                                         JA12   第2営業 
   3  JA21        検索値   販売部当り        JA13   第3営業 
   4                                         JA21   販売部   

(半平太) 2018/05/16(水) 08:12


 >A列に「JA11」と入力したら

 ちょっと確認ですけど、これは手入力?

 入力規則のリストから選択するのではダメなんですかね?
 リストは「JA11」とかではなく「JA11第1営業」のようなシート名と同じものにして。

 そうすると ↓ な感じでできますね。

 =IFERROR(VLOOKUP(C3,INDIRECT(A3&"!M3:R600"),2,FALSE),"")
                                   ~~~~~~~
 この式を下へコピーするにしても、
 波線部は文字列なので 「M$3:$R$600」のように絶対参照にする必要はありませんし、
 N列の値を返すだけなら「M3:N600」でいいのでは?
                           ~~~~
 それと、VLOOKUPが返す値は数値? それとも文字列?

 以上です
(笑) 2018/05/16(水) 10:26

洋平太さん、笑さん ありがとうございます。
 お二人のご提案を参考に・・・

 A列に「J11」や「J12」の記号を入れるとB列に営業所名を自動表示させることにしました。
 で・・・以下のような関数を設定し、無事解決しました♪

 D3=IF(A3="","",VLOOKUP(C3,INDIRECT(A3&B3&"!$M$3:$R$600"),2,FALSE)&"")

 ちなみに、VLOOKUPが返す値は数値や文字列がランダムです。
 また、E3には「&"!$M$3:$R$600"),3」とF3には「&"!$M$3:$R$600"),4」が入る予定です。

 おかげさまでスッキリ解決しました。ありがとうございます!
(す〜) 2018/05/17(木) 22:48

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.