[[20200731190123]] 『IFとVLOOKUPの複数条件』(MOMO) ページの最後に飛ぶ

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

 

『IFとVLOOKUPの複数条件』(MOMO)

P14セルにドロップダウンで 1月〜12月のいづれかを選択すると、
VLOOKUPでsheet1の B〜DA列の指定するセルの値を表示する
計算式を作りたいのですが、

IF($P$14="1月",VLOOKUP($N20,sheet!$B:$DA,4,0)
IF($P$14="2月",VLOOKUP($N20,sheet!$B:$DA,17,0)
IF($P$14="3月",VLOOKUP($N20,sheet!$B:$DA,30,0)・・・と
12月まで続きます

IFとVLOOKUPだと 何も表示されません(エラーにもならないです)
IF(OR でつなげればよいでしょうか。
関数が苦手のため どうぞ宜しくお願いします。

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


ちょっとわかりませんが、必ずP14セルに1〜12月が入るなら↓でよくないです?
 =VLOOKUP($N20,Sheet!$B:$DA,4+(SUBSTITUTE($P$14,"月","")-1)*13,0)

(もこな2) 2020/07/31(金) 19:46


 ちょっと確認だけ

 P14が1月なら 4列目( E列)の値 ※B列から数えて
    2月なら17列目( R列)の値
    3月なら30列目(AE列)の値
 を表示ってこと?

 12月まで全部同じ間隔?
 だとしたら9月は108列目(DE列)になりますけど
 範囲に指定している DA列は「104」列目ですよね。
 8月までしかありません。

 等間隔ではないのなら、4〜12月までそれぞれ何列目なのかすべて書いてください。

 以上
(笑) 2020/07/31(金) 20:24

もなこ2さん 笑 さん ご返信ありがとうございます。

笑 さんのご質問ですが 説明不足で申し訳ございませんでした。
Sheet1のデータは現在 7月、8月、9月、7〜9月計、10月、11月、12月、10月〜12月計  
となっています。(1月〜6月は その時期に来たら上記のフォーマットに更新します)

sheet1は 7月からはじまり、同じ間隔(B列を除外して12項目)ですが  
8月の初め(O列)はB列と同じ数値が入っているので、8月の始まりはP列からです。
そこから 12項目進み、AB列にB列と同じ数値が入り、9月の始まりはAC列です。
9月の後に 7月〜9月(3ヵ月間)の累計が入ります。ここは単純に足し算です。

確認の部分ですが、以下の通りです。

P14が 7月なら 4列目( E列)の値 

    8月なら17列目( R列)の値
    9月なら30列目(AE列)の値
      7月〜10月計は足し算
   10月なら 56列目( BE列)の値 
    11月なら17列目( BR列)の値
    12月なら82列目(CE列)の値
      10月〜12月は足し算  (→終了はDA列)

どうぞ宜しくお願い致します。

(MOMO) 2020/08/01(土) 09:29


 1つの月にそれぞれ12項目があるが
 VLOOKUP で表示したいのはそのうちの 1つだけってこと?

 Sheet1の表にはもちろん列見出しがありますよね?
 そこに7〜12月は入力されてないんですか?

 1行目が見出しだとして
 E1 に「7月」、R1 に「8月」、AE1に「9月」、・・・CE1に「12月」と入力する。
 現状の見出し行には無理なら、どこか空いた行にでも。

 例えばですが、1行目をそのようにしておけば
 ↓ な数式でできます。

 =IF(P14="","",IFERROR(VLOOKUP(N20,Sheet1!B:DA,MATCH(P14,Sheet1!B1:DA1,0),FALSE),""))

 ※必要な部分は絶対参照、複合参照に
 ※VLOOKUP の「検索方法」を FALSE にしましたが、「0」でも同じ

 1つのシートで、上半期・下半期を使い回しているのなら
 E1 に =IF(DC1=1,"1月","7月")  のような式を入れておけば
 DC1セルの値で切り替えることができます。
 または上半期・下半期でシートを分けるか。

 >IFとVLOOKUPだと 何も表示されません(エラーにもならないです)
  ↑ については、数式を省略せずに提示してもらわないことには何も言えません。

 以上
(笑) 2020/08/01(土) 12:09

 P14セルの入力規則(ですよね?)の「元の値」はどうしてますか?

 Sheet2の A1:A12 に1〜12を入力し、表示形式〜ユーザー定義 0"月"

 P14セルの元の値を =Sheet2!$A$1:$A$12 とし
 P14の表示形式もユーザー定義を 0"月" にする。

 上のようにしておけば Sheet1の見出しを使わずに
 ↓ でもできると思います(1〜12月すべて)

 =IF(P14="","",IFERROR(VLOOKUP(N20,Sheet1!B:DA,(MOD(P14-1,6)+1)*13-9+13*(MOD(P14-1,6)+1>3),FALSE),""))

 >11月なら17列目( BR列)の値
 「69」列目でしょ?

 以上、参考まで
(笑) 2020/08/01(土) 12:50

 それともアレですか、7月なら E列だけでなく、F列以降も表示するんですかね?
 なんかそんな気がしてきました。

 その場合は・・・
 1)Sheet1の見出しを検索する方
 =IF($P$14="","",IFERROR(VLOOKUP($N20,Sheet1!$B:$DA,MATCH($P$14,Sheet1!$B$1:$DA$1,0)+COLUMN(A1)-1,FALSE),""))

 2)見出しを使わない方
 =IF($P$14="","",IFERROR(VLOOKUP($N20,Sheet1!$B:$DA,(MOD($P$14-1,6)+1)*13-9+13*(MOD($P$14-1,6)+1>3)+COLUMN(A1)-1,FALSE),""))

 必要なだけ右コピー

 以上、参考まで
(笑) 2020/08/01(土) 17:03

笑さん

ご丁寧にありがとうございます。
ご質問にお答えいたします。

> 1つの月にそれぞれ12項目があるが

 VLOOKUP で表示したいのはそのうちの 1つだけってこと?
 →VLOOKUPで表示したいのは 12項目のうち 8項目あります

>Sheet1の表にはもちろん列見出しがありますよね?

 そこに7〜12月は入力されてないんですか?
 →列見出しは C2から入っています。
  1列目に C2〜N1結合して(12項目分) 202007 と記載しています。
  202007は絶対この形式でなくても大丈夫です

>7月なら E列だけでなく、F列以降も表示するんですかね?

 なんかそんな気がしてきました。
 →はい 計算式を組むsheetの表の表示順はありますが、
  7月度とすると  C列〜J列 8項目分 VLOOKUPで算出しようとしています。
  計算式を組むsheetでは E3、F3、C3、D3、G3、H3、I3、J3 の順に算出しています。

 >11月なら17列目( BR列)の値
 「69」列目でしょ?
 →失礼しました 69列目です。

計算式は1度 7月〜12月で作りました。
そのあと 7月と1月、 8月と2月、9月と3月、10月と4月、11月と5月、12月と6月が同じ列になるため
IF(OR 7月か1月だったら VLOOKUPで〇〇セルを参照・・・という計算式にしようと思いましたが、
以下の計算式では そもそも空白で何も出てきませんでした。

=IF($P$14="07月度",VLOOKUP($N20,予算!$B:$DA,4,0),IF($P$14="08月度",VLOOKUP($C7,予算!$B:$DA,17,0),IF($P$14="09月度",VLOOKUP($C7,予算!$B:$DA,30,0),IF($P$14="10月度",VLOOKUP($C7,予算!$B:$DA,56,0),IF($P$14="11月度",VLOOKUP($C7,予算!$B:$DA,69,0),IF($P$14="12月度",VLOOKUP($C7,予算!$B:$DA,82,0),""))))))

宜しくお願い致します。
  
(MOMO) 2020/08/01(土) 19:09


 >計算式を組むsheetでは E3、F3、C3、D3、G3、H3、I3、J3 の順に算出しています。
  ↑ の順に並べたいってこと?
 よくわかりませんけど、Sheet1 をその順番にしておけばいいのでは?

 Sheet1 の並びを変更できないのなら
 以下を試してください。

 ところで P14のリストですけど、最初は「1月」になってますよね。
 実際は「01月度」?

 ■ Sheet1 の見出し(2行目)
  C2からの結合セル 202007 → 7月度 に変更
  P14のリストに合わせること!
  ・「月」か「月度」か
  ・数字は半角なのか全角なのか
  ・1桁の月は頭に「0」をつけるのかつけないのか

  他の月も同様に

 ■数式
  =IF($P$14="","",VLOOKUP($N20,Sheet1!$B:$DA,MATCH($P$14,Sheet1!$B$2:$DA$2,0)+MID("23014567",COLUMN(A1),1),FALSE))
  右コピー

 以上 
(笑) 2020/08/02(日) 11:14

笑さん  度々ありがとうございます。
これから実施してみます。

>計算式を組むsheetでは E3、F3、C3、D3、G3、H3、I3、J3 の順に算出しています。

  ↑ の順に並べたいってこと?
 よくわかりませんけど、Sheet1 をその順番にしておけばいいのでは?
 Sheet1 の並びを変更できないのなら
 以下を試してください。

→Sheet1の並びは変更できないです(vv)

> ところで P14のリストですけど、最初は「1月」になってますよね。

 実際は「01月度」?
 ■ Sheet1 の見出し(2行目)
  C2からの結合セル 202007 → 7月度 に変更
  P14のリストに合わせること!
  ・「月」か「月度」か
  ・数字は半角なのか全角なのか
  ・1桁の月は頭に「0」をつけるのかつけないのか

→本当にすみません。01月、02月 と頭に0を付けて 末尾は「月度」です。
(MOMO) 2020/08/02(日) 17:15


コメント返信:

[ 一覧(最新更新順) ]


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