• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:列の数値一番上、一番下を検索しA列の文字を返す)

セル内の最低点と最高点を取得する方法

このQ&Aのポイント
  • 列の数値一番上、一番下を検索しA列の文字を返す方法について教えてください。
  • 質問文章中のテーブルには、A列に点数が入力されており、B~C列には各問の人数が入力されています。
  • B列に入力されている数値の一番上(最低点)と一番下(最高点)を調べ、それに応じたA列の文字(点数)を返す関数について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

>どのような意味なのか教えていただけたら幸いです。 再掲: >まぁこーいうもんだと思って使って下さい。 「配列数式」という特殊な計算式を利用しています。通常のエクセルの関数の参考書等には載ってない、とお話しした通りです。初心者さん向けのやりかたじゃない、マニアだけが使う極めて特殊な計算方法だと理解してください。 参考: http://pc.nikkeibp.co.jp/pc21/special/hr/ このすべてを理解してもらうまで、延々と説明をしていくのはここのような質問相談掲示板の範疇ではありませんので。 参考: >関数の勉強を始めたばかりでまったく解からず困っています。 ご利用のエクセルのバージョンも書かれていないご質問なので手取り足取りどこを選んで何をクリックと説明は省きます(次回からは、ご相談投稿に際してはあなたが普段使うソフトのバージョンまでキチンと明記する事を憶えて下さい)が、「数式の検証」という機能を使って『正しく計算できることが分かっている』複雑な計算式が、どのように計算を進めているのかステップを追って理解すると勉強になります。 この機能は、『間違っていないことが分かっている正しい計算式』の計算のシクミを理解するのに利用してください。 実際に手を動かして解答した数式の動作を確認してみると、数字が入ったセルに該当する位置に数字のゼロが並び、そのゼロを検索して先頭に出てくるゼロの位置を調べている(=先頭の数字の位置を調べている)事が判ります。

ki_ki
質問者

お礼

色々ご指導いただきありがとうございました。 次回投稿の際にはソフトのバージョンまできちんと書くようにいたします。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

B7に =INDEX($A2:$A6,MATCH(0,INDEX(0/B2:B6,0),0)) B8はちょっと数式が簡単で =LOOKUP(999,B2:B7,$A2:$A7) それぞれ右にコピーすると出てきます。 いずれも「関数の勉強」をして判る計算式「ではない」(たとえば関数の参考書とかにこーいう使い方が載ってる計算方法じゃないという意味です)ので,まぁこーいうもんだと思って使って下さい。

ki_ki
質問者

お礼

回答いただき有り難うございました。 数式をコピーさせていただき解決しました。知識不足の私には数式の意味が解らず残念です。 INDEX(0/B2:B6,0)の0/B2を初めて見たのですが、どのような意味なのか教えていただけたら幸いです。 よろしくお願いいたします。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

B7セルには次の式を入力し、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。 その式を右横のC7セルまでドラッグコピーします。 =INDEX($A$1:$A$6,MIN(IF(B$2:B$6>0,ROW(A$2:A$6),1000))) B8セルには次の式を入力して上と同様にして式を確定したのちにC8セルまで横にドラッグコピーします。 =INDEX($A$1:$A$6,MAX(IF(B$2:B$6>0,ROW(A$2:A$6),0)))

ki_ki
質問者

お礼

色んな関数の組み合わせがあるんですね。 最低点の方は上手くいきましたが、最高点の方がうまくいきません。頑張って勉強します。回答いただき有り難うございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

B2に  =INDEX($A$2:$A$6,MIN(10^(B$2:B$6=0)*ROW(B$2:B$6))-1) と入力して CtrlキーとShiftキーを押しながらEnterキー ※配列数式にする為 B3に =INDEX($A$2:$A$6,MATCH(MAX(B$2:B$6)+1,B$2:B$6)) と入力して Enterキー B2:B3を選択して左(C2:C3)へフィルコピー ============================ I関数使用方法の説明 NDEX(配列,行番号[,列番号])  配列の先頭から行番号の位置の値を参照します。 MIN(範囲) 範囲内の最小数値を求めます。 10^(範囲=0) 範囲内の数値が0以外の時に1を、その他は10を返します。 ROW(範囲) 範囲の行番号を返します。 MIN(10^(範囲=0)*ROW(範囲)) で数値が入った一番上のセルの行番号を表示します。 ※結果が配列の為、配列数式化が必須 MATCH(検査値,範囲) 検査値の値を範囲の中から探して位置番号を返します。 MAX(範囲) 範囲内の最大値を返します。 MATCH(MAX(範囲)+1,範囲) で範囲内で最後に数値が入力された位置番号を返します。

ki_ki
質問者

お礼

いち早くお返事いただきまして有り難うございました。 関数の説明も丁寧に教えていただき勉強になります。現在の私の知識では理解するのが難しい事も多いので、頑張って勉強したいと思います。 質問させていただいた内容につきましては、数式をコピーさせていただき、範囲等必要なセル番地のみを変えて、解決出来ました。