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

Excelのあるセルの最終行のみ表示させたいです。
 A     B     C      D
月日     入     出      残
10/1  1000   200    800
10/1    500   300   1000
10/1    200     0   1200
10/2   2000   500   2700
10/2    100     0   2800
このような表を
10/1    1200
10/2   2800
のように月日の最終行のD列のみ表示させたいのですが、どういう関数を使えばよいでしょうか?

A 回答 (6件)

添付図参照


G2: =OFFSET(D$1,MATCH(F2,A:A,0)+COUNTIF(A:A,F2)-2,)
「Excelのあるセルの最終行のみ表示させ」の回答画像4
    • good
    • 0
この回答へのお礼

一番簡単な方法で解決しました。ありがとうございました。

お礼日時:2010/10/10 16:57

 御質問文中の例に、同じ日付の行が複数ありますが、実際に御使用になられる表でも、日付が重複する事があるのでしょうか?


 もし、そうであれば、MATCH関数、VLOOKUP関数、MAX関数等では最終行の値を、正しく求める事が出来ない場合があります。

 ですから、次の数式では如何でしょうか。(A1セルに「月日」と入力されていて、実際に月日のデータが入っているのは2行目からの場合)

=INDEX(D:D,COUNT(A:A)+1)

 尚、月日欄の途中に空欄のセルや、数値以外のデータが入っているセルが存在しない場合に限ります。
    • good
    • 0
この回答へのお礼

数値以外のデータも入っているので、違うやり方で対処しました。ありがとうございました。

お礼日時:2010/10/10 16:36

F2セルから下方に日付を入力するとして、その日が入力されている最終行にあるD列のデータとG2セルに表示させるとしたら、G2セルには次の式を入力して下方にオートフィルドラッグします。



=IF(OR(F2="",COUNTIF(A:A,F2)=0),"",VLOOKUP(F2,A:D,4,TRUE))
    • good
    • 0
この回答へのお礼

ありがとうございました。いろいろな方法があるのですね。

お礼日時:2010/10/10 16:58

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


◆Sheet2の式
A2=MIN(Sheet1!$A$2:$A$10)
A3=IF(OR(A2="",A2=MAX(Sheet1!$A$2:$A$10)),"",LARGE(Sheet1!$A$2:$A$10,RANK(A2,Sheet1!$A$2:$A$10)-1))
★A3の式を下にコピー
B2=IF(A2="","",LOOKUP(0,0/(Sheet1!$A$2:$A$10=A2),Sheet1!$D$2:$D$10))
★下にコピー
「Excelのあるセルの最終行のみ表示させ」の回答画像3
    • good
    • 0
この回答へのお礼

いろいろな方法があるのですね。ありがとうございました。

お礼日時:2010/10/10 17:07

データが日付順に並んでいるのですね。

これを利用すると良いです。
例えば
 F2セルに =A2 といれて最初の日付を出します。
 F3セルに =INDEX(A:A,MATCH(F2,A:A)+1)
といれてたっぷり下までコピィしてください。
日付が飛んでいても順に日付が表示されます。
後は 
 G2セルに =VLOOKUP(F2,A:D,4)
と簡単なVLOOKUP関数で その日付の最後の残が出ます。
Vlookup関数、Match関数で 引数で FalseとTrue の設定がありますが
省略して指定しないと True ということなります。
その場合、検索値の一番最後の行を検索して返してくれます。
ExcelのHelpで調べると説明はされていますが、同じ日付が並んだ場合に使えます。
    • good
    • 0
この回答へのお礼

いろいろな方法があるのですね。ありがとうございました。

お礼日時:2010/10/10 17:08

こんばんは!


色々方法はあるかと思いますが・・・
一例です。

余計なお世話かもしれませんが、日付も自動で表示するようにしてみました。
↓の画像のように作業列を使っています。
(あらかじめ日付が入力してあるのなら、作業列は不要です。)
作業列E2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"")

という数式を入れ、E2セルのフィルハンドルでダブルクリック、またはオートフィルで下へずぃ~~~!っとコピーします。

G2セルに
=IF(COUNT(E:E)<ROW(A1),"",INDEX($A$2:$A$1000,SMALL(E:E,ROW(A1))))

H2セルに
=IF(G2="","",INDEX($D$2:$D$1000,MAX(IF($A$2:$A$1000=G2,ROW($A$1:$A$999)))))
これは配列数式になってしまいますので、この画面からH2セルにコピー&ペーストしただけではエラーになると思います。
H2セルに貼り付け後、F2キーを押す、またはH2セルをダブルクリック、または数式バー内で一度クリックします。
編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
(数式は元データの1000行目まで対応できるようにしています)
当然のことながら、日付列の表示形式は「日付」にしておきます。

最後にG2・H2セルを範囲指定し、H2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になれば良いのですが・・・m(__)m
「Excelのあるセルの最終行のみ表示させ」の回答画像1
    • good
    • 0
この回答へのお礼

関数がいろいろあるので、他の方のやりかたで対処いたしました。ありがとうございました。

お礼日時:2010/10/10 17:01

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