No.6ベストアンサー
- 回答日時:
途中に空欄があるとすると、
「最終行から2番目の行」が空白の場合にどうするか解釈の余地がありそうですが……。
解釈A.【空白でないセルのうち、2番目に下方にあるセル】の値を返す場合
※長さゼロの文字列""は「空白」「未入力」とみなす
※必ず空白以外の値が返る
=INDEX(A1:A99,LARGE(INDEX((A1:A99<>"")*ROW(A1:A99),),2))
解釈B.【空白でないセルのうち、もっとも下方にあるセルの上隣のセル】の値を返す場合
※長さゼロの文字列""は「空白」「未入力」とみなす
※該当セルが空白なら空白が返る
=INDEX(A1:A99,MAX(INDEX((A1:A99<>"")*ROW(A1:A99),))-1)
Excel2003で動作確認。以上ご参考まで。
2通りの解釈を頂きありがとうございます。
解釈Bがほしいものです。
そして私もダミーのデータを使用して行うととてもうまくゆきます。(2007環境)
なのに、既存の大きなデータ上(少しシート上のデータが多い)で行うとなぜか「0」になり不思議でなりません。
一つ一つの関数を追いながら考えてもなぜ「0」になってしまうのかさっぱりですので、時間があるときにゆっくりシートを確認しなおしてみます。
ありがとうございました。
急場は、空白セルにダミーデータを挿入して、#1番さんの最も単純な方法で凌ぐことにしました。
No.5
- 回答日時:
#4です。
>VBAは諸事情から使いたくないです
事情にもよるが、#4に書いたのは、「ユーザー関数」で、それはVBAで記述するが、一般のVBAの処理と違うものと思いますが。
一般のエクセル関数と区別はほとんどない。
念のため。
No.4
- 回答日時:
=INDEX($A$1:$A$50,MAX(IF(A1:A50<>"",ROW(A1:A50),0))-1,1)
と入れて、SHIFT+CTRL+ENTERの三つのキーを同時押しする。
ただし上記で求めた対象のセルが空白だと、0 を返してしまう。
実質的な(空白を除いたセルはVBAでユーザー関数を定義しないと
ややこしいでしょう。
Function mae(a)
Application.Volatile True
d = Cells(65536, a).End(xlUp).Row
For i = d - 1 To 1 Step -1
If Cells(i, a) <> "" Then
mae = Cells(i, a)
Exit For
Else
End If
Next i
End Function
この場合、=mae("A")のように列を引数で指定する。この場合A列以外にこの式を入れるか、上記コードの65536をその式より上の行番号に限定すること。
No.3
- 回答日時:
#1です。
VBAを使用して、以下のようにすれば簡単にB1セルに値が出ます。
Sub sample()
Range("B1").Value = Cells(Range("A65536").End(xlUp).Row - 1, "A")
End Sub
ただ、A列のデータ件数が不定で、空欄個数も何個か不明であれば、関数のみで出すとなると他の条件が無いと厳しいかもしれません。
例えば、一番下のセルが『合計』という文字が入力されているとか、最大値が入力されているとかなら抜け道が出てきますけど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Excel(エクセル) INDEX関数とMATCH関数を使用し値を返す数式についてです 2 2022/04/20 13:40
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) 先頭と末尾を指定して連続した数字を入力 1 2022/09/14 13:12
- Visual Basic(VBA) VBAでセル同士を比較して色付け 4 2023/03/06 19:57
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) 別ブックの列同士の値が一致したときの処理 1 2022/09/03 08:27
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excel 空白を含む列範囲からn番目のセル
Excel(エクセル)
-
エクセルで求めたセルの左隣りのセルの値を返したいです
Excel(エクセル)
-
条件に一致する最終行の値をエクセル関数で抽出する方法
Excel(エクセル)
-
-
4
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
-
5
エクセルで空白を無視して一番左にあるセルを参照したい
Excel(エクセル)
-
6
エクセルの質問。 対象範囲の中で、一番下に位置する値を返す関数。
Excel(エクセル)
-
7
【エクセル】範囲内の空白ではない一番下のセル
Excel(エクセル)
-
8
Excelで、条件と一致する最後のセルを検索したい
Excel(エクセル)
-
9
マクロでセルの右から2番目の文字を取得する方法を教えてください
Excel(エクセル)
-
10
ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?
Excel(エクセル)
-
11
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
12
特定セルの内容を更新したら、その更新日を自動的に表示する方法について
Excel(エクセル)
-
13
Excel関数で、範囲内の最後のセルを得る方法
Excel(エクセル)
-
14
値が入っている一番右のセル位置を返す方法
Excel(エクセル)
-
15
Excelで[表1]にあって、[表2]にないものを抽出する関数
その他(Microsoft Office)
-
16
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
17
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
18
エクセル、 名前の定義に関数を使用すると参照できない
Excel(エクセル)
-
19
エクセルで、全部のセルのそれぞれ右から2つ目の数字を取り出して合計したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
exselの質問です
-
エクセルの日付に時差を加算 #V...
-
(マクロ)vlookupの元データを同...
-
Excelのデーターを消して保存し...
-
Excelの数式について教えてくだ...
-
pdfの表をexcelにはりつけて計...
-
エクセルの「赤」の印刷がうま...
-
エクセルで特定のセルに入力が...
-
エクセル おすすめフォント
-
一つのセルに(例えばA1)入力...
-
Excelの関数について教えてくだ...
-
関数の説明
-
Excelにいついて質問です。
-
[オプション]の[アクセスビリテ...
-
VBAについての質問です
-
Excelについて
-
CSVファイルについて質問です。
-
エクセルの「入力規則」のプル...
-
エクセルファイルがファイルの...
-
エクセルであるセルに数字を入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報