INDEX関数&MATCH関数で可能 !?
最も近い誤差の体形の場合は…無理…
数字がピタリの場合しか無理!?
簡単に考えていて、いざ取り組んでみましたが、アバウトな部分を如何したら良いのか私の頭では考え付かずwww![]()
我が儘ボディへと突き進んでしまってるので現在の体形が何体なのか調べてみたい・・・
そんなことINDEX関数とMATCH関数で出来るやろ・・・
結局、ChatGPTの力を借りて解決することになってしまいました・・・
今日はその経緯を書いて置こうと思います。
- 【スーツの体形を調べてみる】
-
- 先ず、セルF2の数字をH列の位置をMATCH関数を使い探したいので『MATCH($F$2,$H$2:$H$8,0)』とします。
- 次に、上で見つけた行番号から体形(I列)を見つけ出したいのでINDEX関数で(範囲)を$I$2:$I$8、(行位置)を先程のMATCH($F$2,$H$2:$H$8,0)を挿入して『INDEX($I$2:$I$8,MATCH($F$2,$H$2:$H$8,0))』とします。
- セルB2にIF関数でセル$I2がINDEX関数で導き出した体形(I列)と一致すれば◎を表示するので『=IF($I2=INDEX($I$2:$I$8,MATCH($F$2,$H$2:$H$8,0)),"◎","")』と指図してみたら見事に表示されました・・・
ところが・・・誤差が体形表に無い数字の場合・・・ -
- 胸囲と腹囲の誤差が体形表の数字と違う場合にはエラーマークが出てしまうので此処で悩んでしまいましたwww
-
- 「ピッタリ一致」ではなく「最も近い誤差(H列)」の体形を選びたい場合は、最小の差を探す式にすればOKとのことでMATCH関数の部分を修正し、数値の絶対値を返すABS関数を使用してH列の誤差とF2の差の絶対値を計算(どのくらい近いか)する『ABS($H$2:$H$8-$F$2)』使用します。
- 次にABSで求めた最も小さい差(最も近い誤差)を求める為、MIN関数でABS関数を囲み『MIN(ABS($H$2:$H$8-$F$2))』とします。
- これをMATCH関数の検索値に挿入し『MATCH(MIN(ABS($H$2:$H$8-$F$2)),』とします。
- 範囲をH列の誤差とF2の差$H$2:$H$8-$F$2で探して完全一致の0を指定して『MATCH(MIN(ABS($H$2:$H$8-$F$2)),$H$2:$H$8-$F$2,0)』とします。
- これを先程のIF関数にのMATCH関数部分と入れ替えるということです。『=IF($I2=INDEX($I$2:$I$8,MATCH(MIN(ABS($H$2:$H$8-$F$2)),$H$2:$H$8-$F$2,0)),"◎","")』
ここで、数時間悩み抜いたのですが・・・アバウトな場合に如何するのか、私の劣化した脳みそでは解決できず・・・結局、ChatGPTに御助言をお願いしたところ以下のように修正してくれましたぁ~! -
これが仕事上のことだったとしたらと考えると、効率的にはAIを上手く活用しないと駄目だということを実感させられました。