• ベストアンサー

エクセルにおいて、数値が入っている一番右端のセルの値を取得する方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • hakone
  • ベストアンサー率54% (40/73)
回答No.2

こんにちは。 一行目を検索するとして、 入力が文字列だけなら、 =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のなかで一番右端の値を 参照します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

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) 12 a b 12 12(セルx1) 1 2 4 4(x2) 34 23 24 25 25(x3) 23 12 12(X4)

全文を見る
すると、全ての回答が全文表示されます。
回答No.5

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

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

同じシート上で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"))

全文を見る
すると、全ての回答が全文表示されます。
  • hakone
  • ベストアンサー率54% (40/73)
回答No.3

No.2の補足です。 maruru01さんの回答をみて思い出しました。 私の回答は、ひとつも入力がないとエラーになります。

全文を見る
すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 例えば、B1から順に数値データを入力していくとして、最新(右端)のデータをA1に表示させる場合、A1に、 =IF(COUNT(B1:IV1),LOOKUP(MAX(B1:IV1)+1,B1:IV1),"") と入力します。 なお、B1~に1つも数値データがない場合は、「""」にしてあります。 ちなみに、認識するのはあくまで数値データで、途中や右の方に文字列データがあっても、無視されます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 値の入っているセルのうち、一番右側の値を取得したい(エクセル)

    現在、データを左から右へ順次追加しています。 一番右側が、最新データとなります。 やりたいことは、複数の行にある、最新データを拾って、グラフを作成したいと思ってます。 どうやったら、できるのでしょうか? <イメージ?> ●:最新データ ×:古いデータ ○:空欄 ●のみを拾って、グラフを作成したい。 ×××××●○ ××××●○○ ×●○○○○○ ××××●○○

  • エクセルで求めたセルの左隣りのセルの値を返したいです

    お世話になります INDEXとMatchを使い行の一番右(左から順にセルが埋まるので右端のセルが一定では無い)の値を返すようにしました。以下です。 しかし、一番右から2番目のセルの値(求めたものの左隣り)もほしいのです。 その場合はどうしたらよいのでしょうか? =INDEX(1:1,MAX(IF(COUNT(1:1),MAX(MATCH(MAX(1:1)+1,1:1,1))),IF(COUNTIF(1:1,"*"),MATCH("",1:1,-1)))) 宜しくお願い致します。

  • エクセルの数値データについて

    OSはウィンドウズビスタで最新版です。 エクセルに数値データを入力するとき漢字変換で入力すると、文字データとして左揃えで入力されました。 一度そのような入力をしてしまうと、同じセルに漢字変換でなく「直接入力」に直しても数値として入力できません。 「書式」「セルの書式設定」「表示形式」で数値を選択してもダメです。 すでに沢山のデータを入力し、いざ計算をと思いましたが、最初から入力し直さなければダメでしょうか? どなたかわかる方宜しくお願いします。

  • 【エクセル】 右端のスクロールバーを太くしたり左端に付けられますでしょうか。

    あけましておめでとうございます。 いつもお世話になってます。 エクセルのシートに右端に縦用のスクロールバーがありますが、視力が悪い方に作業しやすいようもう少し太くしたいと思ってます。 可能でしょうか。 また、反対の左端に付けられますでしょうか。(行番号の左などに) よろしくお願いします。(エクセル2003)

  • EXCEL セル内の数値から、5桁目だけを抽出する方法について

    EXCELシートのセル内に、以下のような30桁からなる数値が入力されている 列が複数あります。 この列内の数値の右端から「5桁目」だけ、または左端から「10桁目」だけを 抽出したいと思っているのですが、EXCELの仕様で数値の先頭にある「0」は 表示されないため、各セルごとに表示されている数値の桁数はバラバラです。 数値の先頭に「0」が付いているセルが多数あり桁数が不揃いなことと、 数値が30桁もあるため、セルの数値表示が「1E+29」のように「E+29」で表示 されてしまっており、うまく数値を抽出することが出来ません。 ◆元データ   「列1」     (1) 1234567890  →(本当は30桁:000000000000000000001234567890)    (2) 111111111100000000001111111111   (3) 1      →(本当は30桁:000000000000000000000000000001)  (4) 123456789012345678909999999999  ◆右端から5桁目だけを抽出する   「列1」      (1)  6      (2)  1      (3)  0      (4)  9   お手数お掛けいたしますが、ご指導下さいますよう宜しくお願い致します。

  • エクセルのあるセルに常に自動更新される値があります。これを

    エクセルのあるセルに常に自動更新される値があります。これを 1分ごとに自動で特定の列に順に出力していきたいのですが? そのような方法はありますか?

  • エクセルのあるセルに常に自動更新される値があります。これを

    エクセルのあるセルに常に自動更新される値があります。これを そのセルの数字が変化するごとに自動で特定の列に順に出力していきたいのですが? そのような方法はありますか? 自動更新されている値は外部のアプリから取り込んだものです

  • Excelで複数のCSVファイルを、セル・行を問わずに比較する方法を教えてください

    Excelで、複数のファイルを比較し、差異を調べる方法を探しています。 使用しているExcelは2000です。 ・最新データファイル.csv ・旧データファイル.csv ・リスト1.csv ・リスト2.csv ・リスト3.csv  (……リストファイルは複数存在。今後も増える予定) リストファイルをひとつにまとめたものが、旧データファイルです。 それをシステムに登録し、自動的に追加削除が加わり、必要な時にダウンロードしたものが最新データファイルとなります。 データファイルは一括されてしまいますので、新しく追加されたものだけ、削除されたリストだけという、データを指定してダウンロードすることはできません。 各ファイルの列はほぼ同じデータが並びますが、行に関しては、削除された場合自動的につまるため、シートとシートを行で比較して差異を調べるという方法では対応できませんでした。 追加・削除されたものを把握し、それがどのリストファイルに含まれていたかをできるだけ簡単に知る方法をご存知の方がいたら、教えてください。 また、これでは何をしたいのかわからないという場合は、必要な項目を教えてください。追記したいと思います。 よろしくお願いいたします。

  • エクセルのセルが縦方向にのびる

    エクセルのセルに文字を打ち右端までくるとセル幅が 自動的に大きくなり、打ち込んだ文字が2段、3段・・・になってしまします。セル幅が自動で大きくならないようにするにはどうしたらいいでしょうか?

  • エクセルでのセルの設定

    Win95、Office97で使用してます。エクセルで数字を入力してEnterを押すと自動的に右端に移動しますよね。で、その数字を右端に寄せないためにはセルの書式設定で表示形式を文字列で設定して入力すればセルの中の数字は右端によりませんよね。その設定(表示形式が文字列の設定)の状態がエクセルを開いた時には全部のセルがその設定になるようにすることは可能なんですか?なんかわかりずらい文章でごめんなさい。よろしくお願いします。

クリーニングできません 51
このQ&Aのポイント
  • クリーニングができないエラーが発生しており、問題の原因や対処方法がわかりません。
  • MFC-850CDNのクリーニングできません 51エラーに関するトラブルや解決策について詳しく教えてください。
  • Windows10環境でMFC-850CDNを有線LAN接続し、クリーニングできません 51エラーが発生しています。対策方法を教えてください。
回答を見る

専門家に質問してみよう