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

エクセルに、左から順にデータを追加しています。
よって、一番右端が最新版となります。
その一番右端のデータのみを取りだして、自動的に作表するようにしたいのですが、どうすればよいでしょうか。
よろしくお願いします。

A 回答 (6件)

こんにちは。

maruru01です。

例えば、B1から順に数値データを入力していくとして、最新(右端)のデータをA1に表示させる場合、A1に、

=IF(COUNT(B1:IV1),LOOKUP(MAX(B1:IV1)+1,B1:IV1),"")

と入力します。
なお、B1~に1つも数値データがない場合は、「""」にしてあります。
ちなみに、認識するのはあくまで数値データで、途中や右の方に文字列データがあっても、無視されます。
    • good
    • 1

こんにちは。



一行目を検索するとして、

入力が文字列だけなら、
=INDEX(1:1,MATCH("ー",1:1))

数値だけなら、
=INDEX(1:1,MATCH(9E+307,1:1))
・・・9e307は、十分に大きな数字なら何でもよいです。

どちらか分からないなら、組み合わせて
=INDEX(1:1,MAX(MATCH({"ー",9E+307},1:1)))

1:1というのは、A1:M1と書き換えてもよいです。
A1:M1と書けば、A1:M1のなかで一番右端の値を
参照します。
    • good
    • 0

No.2の補足です。



maruru01さんの回答をみて思い出しました。
私の回答は、ひとつも入力がないとエラーになります。
    • good
    • 0

同じシート上で1行目なら(行は1:1)


=INDEX(1:1,1,MATCH(MIN(1:1)-1,1:1,-1))
又は
=INDIRECT(ADDRESS(1,MATCH(MIN(1:1)-1,1:1,-1)))
異なるシート(Sheet1)のデータなら
=INDEX(Sheet1!1:1,1,MATCH(MIN(1:1)-1,Sheet1!1:1,-1))
又は
=INDIRECT(ADDRESS(1,MATCH(MIN(1:1)-1,Sheet1!1:1,-1),,,"Sheet1"))
    • good
    • 0

データ範囲が、A1:I1であるとして、


=INDEX(A1:I1,,COUNT(A1:I1))
では、いかがでしょうか。
ただし、途中に空白行があると、うまく右端のデータを読んでくれませんが。
    • good
    • 2

VBAでやると、End(xlUp)とEnd(xlToLeft)だけで出来ます。


Sheet1の右端をSheet2のA列にセットします。数字以外が右端にあっても、拾ってしまいます。
(コードを簡単にするため)
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
'-------
d = sh1.Range("a65536").End(xlUp).Row
For i = 1 To d
c = sh1.Cells(i, "IV").End(xlToLeft).Column
sh2.Cells(i, "A") = sh1.Cells(i, c)
Next i
End Sub
これはユーザー関数化することが出来ます。
Function leftcv(a)
c = Cells(a.Row, a.Column).End(xlToLeft).Column
MsgBox c
leftcv = Cells(a.Row, c)
End Function
シートには、X1セルに=leftcv(x1)などと入れます。
データ列の最右列より、x列は右にあること。
下方向へ式複写が出来ます。
(例)
(A) (B) (C) (D)
12ab1212(セルx1)
1244(x2)
3423242525(x3)
231212(X4)
    • good
    • 1

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

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