『複数シートの値を比較して値を取得したい』(らすてい)
連日の質問で申し訳ありません。
前回の管理表とは異なるもので、以下の表を作成したいです。
同一ブック内に以下の3シートを作成しています。
【ランク】シート ※レンジに対応したランク表(マスタ的なシート)
|_A_|_B_|_C_|
| 0.0 | 9.9 | A |
|10.0 |19.9 | B |
|20.0 |29.9 | C |
|30.0 |39.9 | D |
|40.0 |49.9 | E |
|50.0 |59.9 | F |
|60.0 |69.9 | G |
|70.0 |79.9 | H |
|80.0 |89.9 | I |
|90.0 |99.9 | J |
【3月】シート ※月ごとにシートあり
|_A_|_B_|
|2025/3| |
| 1 |59.2 |
| 2 |38.5 |
| 3 |45.1 |
<=== 略 ===>
| 27 |28.0 |
| 28 |64.2 |
| 29 |88.7 |
| 30 |52.4 |
| 31 |39.5 |
※各月のシートは、他システムから出力したCSV(稼働率)の結果をコピペしてます
※A列の各日は数値なので、コピペ後に日付型に変更しています
【メイン】シート
以下の各日の推奨ランクに、【3月】シートのB列が、【ランク】シートのA・B列の範囲に
該当するC列の値を各日にコピーしたいです。
|_A_|__B__|_C_|_D_|_E_| 略|_AA_|_AB_|
| |3/1 |3/2 |3/3 |・・・|3/27|3/28|
|2025/3|推奨ランク|B |D |E |・・・|C |G |
関数だけで実現可能でしょうか。
ご教示のほどよろしくお願いいたします。
< 使用 Excel:Excel2019、使用 OS:Windows11 >
レイアウトは以下のセル番地とし、判定値は99.9を超えない。 VLOOKUP関数の近似値で検索する為、ランクシートは昇順に並んでいること。 メインシートのA2セルはシリアル値であること。 3月シートのシート名は「半角数字&月」であること。 COLUMN関数のA1はINDEX関数で指定した範囲の1行目を取り出すためA1としている。
【ランク】シート |[A]|[B] |[C] [1] | 0| 9.9|A [2] | 10|19.9|B [3] | 20|29.9|C [4] | 30|39.9|D [5] | 40|49.9|E [6] | 50|59.9|F [7] | 60|69.9|G [8] | 70|79.9|H [9] | 80|89.9|I [10]| 90|99.9|J
【3月】シート |[A] |[B] [1]|2025/3 | [2]| 1|59.2 [3]| 2|38.5 [4]| 3|45.1
【メイン】シート |[A] |[B] |[C] |[D] |[E] [1]| | |3月1日|3月2日|3月3日 [2]|2025/3|推奨ランク|F |D |E
C2 =VLOOKUP(INDEX(INDIRECT(TEXT($A2,"m月")&"!$B$2:$B$32"),COLUMN(A1)),ランク!$A$1:$C$10,3,1) 右方向へコピー
各月シートの空白セルは0と判断されるので、Aランクになります。 空白にしたければ、IF関数で処理します。 C2 =IF(INDEX(INDIRECT(TEXT($A2,"m月")&"!$B$2:$B$32"),COLUMN(A1))="","",VLOOKUP(INDEX(INDIRECT(TEXT($A2,"m月")&"!$B$2:$B$32"),COLUMN(A1)),ランク!$A$1:$C$10,3,1)) (RB) 2025/02/24(月) 12:02:46
ご提示いただいた 2つの式で期待する値の取得ができました。
VLOOKUP以降で、個別の関数でやっていること、各関数の説明とパラメータの確認で、
返信まで日にちを要してしまいました。申し訳ありません。
複雑な式のように思えましたが、個別の関数を確認すると「そうなりますよね」と思い、
いかに関数を知っているかや、見つけられるか、かなと感じました。
今回は、よく使う関数の組み合わせとして覚えておきます。
ありがとうございました。
今後ともどうぞよろしくお願いいたします。
(らすてい) 2025/02/26(水) 22:17:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.