アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL2003ですが、売上などの集計一覧表で、最下行の右端のセルの番地を求めるにはどのようにすればよいですか?
商品が売れるたびに最下行が増えていきますので、関数を使用する場合範囲が固定できず困っています。
よろしくお願いします。

A 回答 (5件)

UsedRange を使ってみてください。



参考URL:http://excelvba.pc-users.net/fol7/7_3.html
    • good
    • 0
この回答へのお礼

ありがとうございました。せっかくお教えいただいたのですが、VBAはまったくわかりません。今後勉強して参考にさせていただきます。

お礼日時:2007/11/26 17:13

関数ですか? 


必ずデータが入力される列をB列とすると
 =COUNTA(B:B)
でデータの個数が求められますので、途中に空の行がなければこの値が最下行の行番号と一致します。

意味が違っていたら補足してください
    • good
    • 0
この回答へのお礼

ありがとうございます。初心者で申し訳ございませんが、データの個数が求められたとして、それをどのように利用すればよいのでしょうか。

個数(数値)とセル番地(B4とかD34)を関連付ける方法がわかりません。

売上集計表の中で、商品別の合計を求める場合、DSUM関数を使用しますが、販売商品が増えて最下行が増えるたびに、セル範囲を変更しなくてはなりません。その作業を自動化するために、最下行が増えるたびにそのセル番地が自動的に変更になる方法を知りたいのですが、上手に説明できず申し訳ございません。
よろしくお願いします。

お礼日時:2007/11/26 17:10

#02です


INDIRECT関数を用いて「可変」範囲を定義できます。例えば

=SUM(INDIRECT("A1:A" & COUNTA(A:A)))

のようにするとA列の最終行までが合計範囲になります。
ただしDSUM関数ならタイトル行があるでしょうから
 COUNTA(A:A)-1
のように調整が必要になると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました。
私にとってはすこし難しいので、もう少し勉強の時間が必要です。
参考にさせていただきます。
本当にありがとうございました。

お礼日時:2007/11/26 21:44

以外に正面からの関数は無い。


初心者なら、関数を使用する場合の具体的な例を挙げては。SUM関数とか、・・。
(1)Count法
(2)配列数式
(3)VBA法・ユーザー関数定義
(4)セル範囲定義
--
(2)は
=MAX(IF(B2:B100<>"",ROW(B2:B100),""))

=MAX((B3:B101<>"")*(ROW(B3:B101)))
と入れてSHIFT+CTRL+ENTERの3つのキーを同時押しする。
間に空白行があっても、最下行数を返す。
ーー
(3)は
標準モジュールに
Function dr(a)
dr = Cells(65536, a.Column).End(xlUp).Row
End Function
でセルには
=dr(B1)
    • good
    • 0

◆こんな方法はいかがでしょうか?


1)荒っぽいですが、範囲を列全体にします(途中に空白があっても大丈夫)
=SUM(B:B)

2)途中に空白行がなければ
=SUM(A1:INDEX(C:C,COUNT(A:A)))
または、
=SUM(B1:INDEX(B:B,COUNT(B:B)))
または、
=SUM(INDIRECT("B1:B"&COUNT(B:B)))

3)途中に空白行があっても、最下行を返します
=MATCH(10^10,B:B)  ・・・(数値場合可)
よって、空白がある場合の和は
=SUM(OFFSET($B$1,,,MATCH(10^10,B:B)))
=SUM(B1:INDEX(B:B,MATCH(10^10,B:B)))
=SUM(INDIRECT("B1:B"&MATCH(10^10,B:B)))

★お役に立ちましたでしょうか?
    • good
    • 2

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

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