[[20250301105720]] 『VLOOKUP 変則近似値の出し方』(ひよちゃん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『VLOOKUP 変則近似値の出し方』(ひよちゃん)

こんな感じの表があります

<データ表>

  A    B    C

1 県番号  人数   ランク 

2 22   33   E

3 4    20   B

※県番号と人数から、ランクを抽出する(C2、C3

<別表>

  A    B   C

1 県番号  人数  ランク

2 22   0   A

3 22   10  B

4 22   20  C
  
5 22   30  D

6 22   40  E

7 4    0   A

8 4    25  B

9 4    50  C

10 1    0   A

11 1    10  B

12 1    100 C

※以下100行まで

<説明>

・データ表は、10000行位あり、県番号や人数が

 ランダムに入っている

・別表は、県毎のランク基準が1〜47、県によって

 4〜10段階の設定があり、県毎に数値基準が異なる

・県毎に抽出=IF($A2=22,VLOOKUP($B2,別表!$B$2:$C$6,2))

  も検討したが、今後追加等もあり、データ表にて、

 県番号22で、人数33なら、Eランクと、C2セル

 にて一発で出せる方法が知りたい

以上の条件から、ご提案・ご指導お願いします。

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


 >・県毎に抽出=IF($A2=22,VLOOKUP($B2,別表!$B$2:$C$6,2))
 >  も検討したが、今後追加等もあり、データ表にて、
 > 県番号22で、人数33なら、Eランクと、・・

 その式を入れると「D」になり、「E」にはならないです。

 「E」が正しいとすると、Aランクは0人の時に限られる事になり
 それもちょっと変だなぁと言う気になります。

 1.条件の説明に何かミスがないですか?

 2.ランクは、全てAから順にアルファベットに並んでいるんですか?
   それとも、県によっては、S,M,Lの3段階なんてのもあり得るんでしょうか?

(半平太) 2025/03/01(土) 13:42:15


お返事ありがとうございます。

1,ミスです、

30〜40=Eになるようにしたいです。

0=”-”、1〜10=A・・・となるのが正解です。

2,そのとおりです。全県A〜Lの11段階設定、各県の人口が異なるので、

県毎にそのランク値が変わります。

改めて、宜しくお願い致します。

(ひよちゃん) 2025/03/01(土) 13:50:41


 >1 県番号  人数  ランク
 >2 22   0   A
 >3 22   10  B
 >4 22   20  C
 >5 22   30  D
 >6 22   40  E

 >30〜40=Eになるようにしたいです。
 >0=”-”、1〜10=A・・・となるのが正解です。

 すると、  11〜20=B
        21〜30=C
        31〜40=D
        41〜50=E

 1.どうしても「30〜40=Eになる」ようには出来ない気がするんですが・・

 >全県A〜Lの11段階設定
         ↑
        12段階設定ですね?

 2.サンプルは、5行だったり、3行だったりして一定の行数じゃなかったのですが、
    実際は「全県A〜L」と言うことなので、全県一律 12行あるんですね?

(半平太) 2025/03/01(土) 14:38:00


何度も質問すいません。

ランクについては、改めて確認した所、

全てご指摘どおりが正解です。

つまり、30〜40=D、とならなくては

いけません。

また、全県行数は12でお願いします。

(ひよちゃん) 2025/03/01(土) 15:32:50


 最初の条件、30より大きく40以下=E
 C2
=INDEX(別表!C:C,MATCH(1,(別表!A$1:A$1000=A2)*(B2<=別表!B$1:B$1000),0))

 ちなみに、30以上40未満=D
 C2
=INDEX(別表!C:C,MATCH(B2,別表!B$1:B$1000/(別表!A$1:A$1000=A2)))
(んなっと) 2025/03/01(土) 16:02:07

んなっと様

ご回答ありがとうございます。

今やってみましたが、上はNA、下はDIVで、

両方共エラー回答になってしまいました。

もう一度ご確認願いませんでしょうか?

(ひよちゃん) 2025/03/01(土) 16:39:12


 間違えた。
=INDEX(別表!C:C,MATCH(1,INDEX((別表!A$1:A$1000=A2)*(B2<=別表!B$1:B$1000),),0))
=INDEX(別表!C:C,MATCH(B2,INDEX(別表!B$1:B$1000/(別表!A$1:A$1000=A2),)))
(んなっと) 2025/03/01(土) 17:05:17

んなっと様

ナイスコメントです!(笑)

境値も、BCと評価がそれぞれ別れ、完璧でした。

式を47作らなくていいし、コントロールシフトも

しなくて良く、一度に解決出来ます。

本当にありがとうございました。

(ひよちゃん) 2025/03/01(土) 17:14:57


コメント返信:

[ 一覧(最新更新順) ]


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