好きな「お肉」は?

付図に示す状況において、計算式を組み立てる過程で、私には理解できない現象に遭遇しております。皆さんの知恵をお借りしようと質問いたします。
範囲 A14:F17、および、範囲 A20:F23 にはそれぞれ名前 スーパーA、スーパーB を付けております。

式 =MATCH(A2,INDEX(INDIRECT($B$1),1,0)) を入力したセル E2 を下方にオートフィルしました。
その戻り値は、当然上から 1、3、5 になるはずと期待したのですが、結果はご覧のように 6、3、5 です。

セル E2 の結果は 1 でなくて、6 になるのでしょうか?
ちなみに、上式は(定義した"名前"を使用しない)次式と同じです。
=MATCH(A2,INDEX($A$14:$F$17,1,0))

よろしくお願いいたします。

「考えた式の戻り値が期待通りにならない」の質問画像

A 回答 (3件)

こんばんは



どのようなお考えで式を作成なさったのか不明ですが・・・
E2セルにご提示の式を入力して下方にフィルコピーすると、当方の環境では、
「6、3、5 」ではなく「5、3、5」になりますね。
(Excel 2019)

>=MATCH(A2,INDEX($A$14:$F$17,1,0))
の式の、第二項になっている
 INDEX($A$14:$F$17,1,0)
を考えてみれば、セル範囲(=$A$14:$F$17)の「1行目0列目」を意味しますので、単独でどこかのセルに
 =INDEX($A$14:$F$17,1,0)
を入力すれば、当然ながら結果はエラー値になります。
複合式にした場合に、エクセルがどのように評価しているのかは不明ですが、エラーを返していないので、推測するところ上式を
 INDEX($A$14:$F$17,1,)
として評価しているのではないかと思われます。

一方で、なさりたいことが質問文には明記されていませんけれど、
 『表の項目行(=1行目)から、A2等に一致する列番号を求めたい』
ではないかと推測しました。
であるなら、Match対象範囲が昇順・降順に並んでいるわけではないので、完全一致を指定する必要があると思われます。
ご提示の式を、
 =MATCH(A2,INDEX($A$14:$F$17,1,),0)
に替えて、フィルコピーすれば「1、3、5」を返してくれます。
    • good
    • 0
この回答へのお礼

fujillinさん、
またお世話になります。

》 当方の環境では、「6、3、5 」ではなく
》 「5、3、5」になりますね。
そうですか、私もExcel 2019 を使ってますが、なぜ違うのか不明です。

》 INDEX($A$14:$F$17,1,0) を考えてみれば…「1行目0列目」を
》 意味しますので、…
臨場の倉石検視官と同じ口癖「俺のとは、違うなあ」が思わず口に付いて
出ました。私は「1行目”全”列」を意味すると理解しています。末尾の「0」無しの「INDEX($A$14:$F$17,1,)」でもOKかと。
お蔭様で気付きました、次の間違いにッ!
=MATCH(A2,INDEX($A$14:$F$17,1,0)) は間違いで、
=MATCH(A2,INDEX($A$14:$F$17,1,0),0) が正しいと。更に
=MATCH(A2,A$14:F$14,0) に簡素化出来ますよ、とは我が小坂警部補からのアドバイスでした。(^_^)

お陰様で助かりました。m(_._)m

お礼日時:2024/09/30 23:24

No1です。



連投失礼。 No1の記載に誤りがありました。

>当方の環境では、~「5、3、5」になりますね。
は、1行目の「価格」の文字を省略していたためでした。
「価格」の文字を入力すると「6、3、5」になります。

失礼いたしました。
    • good
    • 0
この回答へのお礼

》 「6、3、5」になります。
「俺のとは、違うなあ」(^_^)

皆さん、お世話になりました。
サ・ヨ・ナ・ラ

お礼日時:2024/10/01 00:16

列番号に0を指定してるからでは?


配列内の相対セルなので、1以上の整数。

列番号指定を省略するなら、,のみとなります。
INDEX($A$14:$F$17,1,0)

INDEX($A$14:$F$17,1,)
    • good
    • 0
この回答へのお礼

仰る通りですね。

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

お礼日時:2024/09/30 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A