• 締切済み

Excel関数で、範囲内の最後のセルを得る方法

Excelの表の中で、範囲内の最後のデータ、例えば、a1:a9のうち、a3:a5だけにデータがあるとき、a5のデータを取得したいとき、どんなふうに関数を入力すればいいですか? 始まるセルも、終わりのセルも一定でない場合を想定しています。 ここでいう最後とは範囲内のもっとも下のデータという意味です。 やりたいことは分っても関数名も組み合わせ方も分りません。 例えば、データがある、範囲を特定し、その範囲の最後のセルのセルを返してもらうでもいいかもしれません。 目が見えないので、参考URLなどを張っていただく際は、どうか、テキスト情報が多いものを張ってください。 よろしくお願いします。

みんなの回答

回答No.4

補足質問への回答です。 =max(index((範囲<>"")*row(範囲),0))に現れる「範囲」は、もち ろん同一の範囲を指定します。あなたの場合だとA1:A9ですね。 最終的には、 =indirect("A"&max(index((A1:A9<>"")*row(A1:A9),0)))-max(A1:A9) ですかね。途中に空白があっても大丈夫だし、もしも最後の行が文 字列だったら、ちゃんとエラーになります。あなたが補足に書いた 式は、私の回答のindirect関数を使う話が反映されていないので不 十分ですし、0の位置が間違ってて動作しません。 では、よい正月を。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

過去スレですが、参考になると思います。 http://oshiete1.goo.ne.jp/qa4260158.html

回答No.2

シンプルにやるのは難しいですね。たとえば、 =max(index((範囲<>"")*row(範囲),0)) これで範囲内の「空白でない」一番下のセルの行番号が返ってきま す。途中に空白があっても大丈夫なことは確認済み。あとは、範囲 がA列だと分かっているならindirect関数で=indirect("A"&…と繋 いでやりましょうか。 式の中に同じ範囲が二回出てくるのが不満です。

sousisouai
質問者

補足

えっと、maxとindexの組み合わせですね。 前に出てくる範囲と、後ろの範囲は同じ範囲でいいのですか? またこのような式は可能ですか? =max(index((a1:a9<>""),0,*row(a1:a9)))-max(a1:a9) 範囲内にある、データの最後の値から、最大の値を引くということをしたいのですが。

noname#204879
noname#204879
回答No.1

{=INDEX(A1:A9,MAX((A1:A9<>"")*ROW(A1:A9)))} (配列数式)

関連するQ&A

  • INDEX関数の参照範囲にセルを指定する方法

    INDEX関数で別のエクセルファイルからデータを取得したい。 現状、ファイルパスを直接指定してデータを取得しておりますが ファイルパスを入力したセルを参照範囲に指定してデータを取得できるようにしたいです。 INDEX関数を入力するエクセルファイルをFile①、 別のエクセルファイルをFile②とする。 File②のファイルパスをFile①のA1セルに入力し、 INDEX関数の引数にA1を指定してデータを取得することはできますか?

  • 関数内のセルの範囲を他のセルから取得する方法

    教えてください。 関数内のセル名を他のセルから取得することはできるのでしょうか? 例えば、B列の合計を求めるSUM関数であれば A1セルに関数を記述 =SUM($B$x:$B$y) A2セルに範囲(上記式のx)を指定  1 A3セルに範囲(上記式のy)を指定  10 これにより、B列のB1~B10の合計を求める。 といった感じです。 ※実際に使用したい関数は、SUMではありません。 よろしくお願いします。

  • セル範囲の左上のセルの取得方法

    エクセル2010のVBAで関数を自作しているのですが Test(A as range, B as range)という関数で Aはセル1個、Bはセル範囲を選択して、Aは必ずBの左上のセルになるので、 Test(B as range)の様に変数を減らしたいです。 ただ、関数内でAを使用するので、Bのセル範囲の左上の値を取得する必要があります。 Bのセル範囲の左上の取得方法が分かりません。

  • Excel関数を解説して教えて下さい。

    どなたか教えて下さい。 Excelで特定の列の中で一定の範囲が指定されているセルの任意のセルに値を入力し、その範囲の中に入力された最終行 (最下段) の値を取り出すために下記のようにExcelのLookup関数を使用して必要とする値を取り出しています。 =Lookup (10~10,特定の列の最上段のセル:特定の列の最下段のセル) これで間違いなく特定の列で定められた範囲に記載された値の最下段の値を取り出せますが、 10~10と設定する意味と、どうして最下段の値が取り出せるのか、この関数を解説して教えて下さい。 また、この場合の最上段の値を取り出す際の関数も教えて下さるようお願いいたします。

  • EXCEL関数で値の範囲検索をしたい

    EXCEL関数で値の範囲検索をしたい お世話になっております。 シートに下記の表があります。    A    B    C 1  レベル MIN  MAX 2  1    0.3   0.7 3  2    0.8   1.2 4  3    1.3   1.7 5  4    1.8   2.2 6  5    2.3   2.7 7  6    2.8   3.2 8  7    3.3   10 たとえば、A10のセルに 1.5 と入力したら、その値がどのレベルの範囲であるのかを検索し、 レベルを返したいのです。 1.5のレベルは3なので、隣のA11のセルに 3 と表示する関数を作成したいのです。 値一致検索であればVLOOKUPを使えばいいのですが、 範囲検索はどうすればいいのかがわからなくて 質問しました。 ご教授おねがいいたします。

  • EXCEL関数について教えてください

    一覧表から条件一致の数を数える関数。 一つの範囲を指定して、その中から条件に一致するセルを数えるには COUNTIF関数を使いますが、 別々の範囲の中から、各々一つずつの条件に一致するセルを数えるには どうしたら良いでしょうか? 例えば、A列の○○という条件に一致して、なおかつE列の△△にも一致する セルの数を数えたいのですが。。。 分かりにくくてすみません。

  • セルの範囲を、別のオブジェクトに連動して反映

    エクセル2010です。 セルの一定の範囲の文字を、別のテキストボックスに表示できないでしょうか? たとえば図のように、A1~A10の範囲に編集用データがあり、別のテキストボックスにその内容が連動して表示される、という仕組みです。 編集用データの内容が変わると、テキストボックスの表示も変わるようにしたいです。 思いついたのは、セルの範囲に名前を付けて関数や入力規則などに使ったりしますよね。その名前をテキストボックス上で指定すればどうかと試しましたが、残念ながらセル範囲の一番上の項目しか表示されませんでした。 また、セルの分だけテキストボックスを作ってグループ化し、それぞれにセル番地をひとつずつ参照指定していこうとしましたが、けっこう大量にあるので1時間ほどやって挫折しました・・・ テキストボックス(または図形オブジェクト)に表示させたい理由は、フローティング状態ですのでシートのどこにでも手軽に持ってこれるからです。これが実現できるのであれば別の方法でもけっこうです。(ただし、ウインドウ枠の固定を使っているので、画面の分割は使えません) グラフ機能のようなもので、フローティングスプレッドシートみたいなものがあればよいのですが・・・ アドバイスをいただけると幸いです、よろしくお願いします。

  • excelのCOUNTIF関数で、『範囲=色のついたセル』に設定したいです。

    excelのCOUNTIF関数で、『範囲』の設定で、『ある一定の範囲内の色のついたセル』を 範囲として選択したい場合、どのように操作したらよいでしょうか? たとえば、A1~A30までのセルの中で、A9、A10、A18、A19、A20、A29、A30のセルが赤で、 そのうちのA10、A18、A29、A30に「○」の記号が入っていて、その○の数を調べたい場合です。 ご存知の方、よろしくお願いいたします。

  • セル範囲の中で、データの入っている左端のセルを選ぶ

    エクセル2003を使用しています。 セル範囲の中でデータが入っている一番左のセルを取得する関数はありますか?   A B C D 1 1020 2   23 25 3 21   30 上記のように、空白のセルもあり、データが入っているセルのうち、一番左のセルの数値を使用したいと考えています。(例:1行目なら10、2行目なら23というように) その数値を計算に使用するつもりです。 何か、いい方法がありましたらご教授願います。

  • IF関数を一定のセル範囲を参照し、答えを表示するには?

     IF関数初心者ですが、最近、少しづっではありますが、理解できるレベルになって来ました。  そこで疑問なのですが、下記のような表があり、    A    B    C    D 1  80          答え 2   60 3  120 4   90 5   60  A1からA5といった特定のセル範囲でD1セルに式入力、答えを返し表示するにはどうすればよいのでしょうか?  A1からA5各セルの数値が80以上は合格、以下なら不合格とD1セルに表示したいのです。  単一のセルに対してはIF(A1>=80,"合格","不合格")ですが、検索範囲を一括(A1:A5)になる場合の式表記の仕方が分かりません。  簡単なことが分からず、レベルが低いですが、どなたか教えていただけませんか?

専門家に質問してみよう