「忠犬もちしば」のAIボットを作ろう!

エクセルにデータロガーからデータが常に入って来るのですが、データ数が多く列末のデータだけが知りたいのですが簡単に表示させる方法はありませんか?他のページからも参照できれば良いのですが・・・。
よろしくお願いします。

A 回答 (4件)

◆途中に空白があってもいいですよ


★数値の場合(A列最後の行のデータ)
=LOOKUP(10^10,A:A)

★文字列の場合(A列最後の行のデータ)
=LOOKUP(1,0/(ISTEXT(A:A)),A:A)

★数値・文字列混在の場合(A列最後の行のデータ)
=LOOKUP(1,0/(A:A<>""),A:A)
    • good
    • 9
この回答へのお礼

いやー、素晴らしいです。的確に的を得ています。
ありがとうございます。
2日ぐらい悩んでいました。これで今日はぐっすり寝れます。

お礼日時:2008/08/18 21:58

VBAでなら良くやる方法がある。

途中に空白があってもかまわない。
標準モジュールに
Sub test01()
Worksheets("Sheet1").Range("H:H").Clear
d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row
For i = 1 To d
Worksheets("Sheet1").Cells(i, "H") = Worksheets("Sheet1").Range("IV" & i).End(xlToLeft)
Next i
End Sub
A列には必ずデータがある
I列までのデータである
シート名はSheet1のデータ
という例になっている。
ーー
>列末
とはシート列で、データの入っている最も右の列ですよね。列末とは言わないように思うが。
    • good
    • 0

もし、データが上から空白なくつまっているのであれば、


Sheet2のB列の最後の行の値(文字)
=INDEX(Sheet2!B:B,COUNTA(Sheet2!B:B))
で出ます。
    • good
    • 0
この回答へのお礼

ありがとうございました。
何とかやりたいことが出来ました。
本当にありがとうございました。

お礼日時:2008/08/18 19:06
    • good
    • 0

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの関数(最後の値を返す)

A1からJ65までの範囲のなかで (計算式などが入ってるセルも含まれてます)
J列の最後に表示されている値を返したいのですが どんな計算式をしていいか 調べてもわからず困っています。

J35のときもあればj40のときもあります。
ちなみにJ列にはすべて 計算式がはいってます。
その計算結果が表示されているセルと空白のセルがあります。
(J1からJ40まで値表示J41からしたは空白表示のときJ40を返したい
このときA列はA1からA40までは値が入力されてますがA41からしたはまったくの空白です)

Aベストアンサー

計算結果が数値なのであれば
=INDEX(J:J,MATCH(MAX(J:J)+1,J:J,1))
でJ列の最後に表示されている値を返します。 

QExcelで、条件と一致する最後のセルを検索したい

Excelで、条件と一致する最後のセルを検索したいのですが、どの関数をどのように使えばいいかわかりません。
どなたかお力をお貸し下さい。

問)
日付  社名  品名  個数
1/1   A    あ    1
1/1   C    い    2
1/2   B    う     3
1/2   A    え    4
1/3   C    お    5
1/3   A    あ    3

答)
A社の最終購入日は  1/3 あ 3
B社の最終購入日は  1/2 う  3
C社の最終購入日は  1/3 お 5

となるようお願いします。

Aベストアンサー

エクセルには「最後の該当」を検索する関数はありません。
無駄に複雑な数式を駆使すればもちろん「やればできます」が、添付図のようにちょっと工夫するだけで、普段使いの数式だけでやっつけるのがお勧めです。

A2:
=IF(OR(C2="",COUNTIF($C$2:C2,C2)<COUNTIF(C:C,C2)),"",C2)
以下コピー

答えは簡単なVLOOKUP関数を使うだけです。
H2:
=IF(COUNTIF($A:$A,$G2),VLOOKUP($G2,$A:$E,2,FALSE),"")




まぁ一応ご参考に作業列を使わない方法:
H2:
=IF(COUNTIF($C:$C,$G2),INDEX(B:B,MAX(IF($C$2:$C$999=$G2,ROW($C$2:$C$999)))))
と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力する

説明は省略しますので、ブラックボックスで使ってください。

QEXCEL 最終行のデータを他のセルに参照したい

1ヶ月の集計表があります。
1日○○○人
2日○○○人
3日○○○人
4日○○○人
5日(空白)
6日(空白)



という毎日の該当者数の日報があります。
最後に入力されている人数(この場合4日の人数)を使って
別シートで計算をしたいのですが、
どうやって抽出(指定?)すればいいでしょうか?

簡単に言うと、
上から順に入力された最後の行のデータを
他のセルに参照する方法(関数)は?
ということになるでしょうか?

簡単なようですが関数が思いつきません。
マクロが必要なんでしょうか?

Aベストアンサー

たとえば、列Aに日付、列Bに値の表だとしたら、
B列の最終行の値を参照する式は以下のとおり。
(※ただしB列は連続してデータが存在している前提)

=OFFSET(B1,COUNTA(B:B)-1,0)

OFFSET関数は基準になる位置から
指定された行数、列数の位置のセルを参照する関数です。
この例の場合は、基準の位置がB1、基準の位置B1から
B列のデータ個数-1行目を参照させる式になっています。

ヘルプもご確認ください。

Qエクセル:データが入った最終行の行番号の取得

お世話になります。
A列にいろいろデータが入っているとして、データが入っている一番下(最終行)の行番号をB1のセルに表示させるにはどういう計算式で出来るでしょうか?
A列のデータは数値だけでなく文字列も含みます。また途中空白セルもあります。
A1~A20にデータが入っているときはB1に20と表示させる。
よろしくお願いします。

Aベストアンサー

=MAX(IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)),IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1)))

Q【エクセル】範囲内の空白ではない一番下のセル

またよろしくお願いします。
2段階にわけて質問します。

【質問1】
範囲A1:A10の空白ではない一番下のセルの値を得たい

【質問2】
たとえば質問1でA8が該当セルだった場合、範囲B1:B8の空白ではない一番下のセルの値を得たい。

A列の状態によってB列の範囲を変えて選び出すのが難しそうです。
よろしくおねがいします。

Aベストアンサー

こんにちは~

A1:B10 に入ってるのは数値ですか、それとも文字列?
それによって数式が変わりますよ。

> 範囲A1:A10の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,A1:A10),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(A1:A10)+1,A1:A10),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(A1:A10,MATCH("*",A1:A10,-1)),"")


> たとえば質問1でA8が該当セルだった場合、
> 範囲B1:B8の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,INDIRECT("B1:B"&MATCH(MAX(A1:A10)+1,A1:A10,1))),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(B1:B10)+1,INDIRECT("B1:B"&MATCH(MAX(A1:A10)+1,A1:A10,1))),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(B1:B10,MATCH("*",INDIRECT("B1:B"&MATCH("*",A1:A10,-1)),-1)),"")

※B列の該当範囲に値がない場合のエラー処理はしていません。
※解決した質問は締め切ってくださいね。

こんにちは~

A1:B10 に入ってるのは数値ですか、それとも文字列?
それによって数式が変わりますよ。

> 範囲A1:A10の空白ではない一番下のセルの値を得たい

★数値なら

=IF(COUNT(A1:A10),LOOKUP(10^10,A1:A10),"")

または

=IF(COUNT(A1:A10),LOOKUP(MAX(A1:A10)+1,A1:A10),"")

★文字列なら

=IF(COUNTA(A1:A10),INDEX(A1:A10,MATCH("*",A1:A10,-1)),"")


> たとえば質問1でA8が該当セルだった場合、
> 範囲B1:B8の空白ではない一番下のセルの値を得たい

★数値な...続きを読む

Q【EXCEL】列の最後のセルのデータだけ抽出したい

いつもお世話になっております。

A1 ○○ B1 ○○ C1 ○○
A2 ○○
A3 ○○ B3 ○○

...といったかんじでセルにバラバラにデータが入っているとします。

列にデータが入っている最終の行だけ取り出したいのです。
上の例だとC1,A2,B3です。

マクロを使わなきゃ無理そうなのですが、アフォなのでわかりません。(T.T)
プログラミングの経験がある方、賢い方、教えてくださいませ。

Aベストアンサー

以下の関数で如何でしょうか。期待値と相違していましたら無視して下さい。
(例)A列の最終行の文字or数値を取り出せます。
=INDEX(A:A,MAX(IF(COUNTIF(A:A,"*"),MATCH("",A:A,-1)),IF(COUNT(A:A),MATCH(MAX(A:A)+1,A:A,1))))

因みに、列にデータが入っている最終の行ならば、A3,B3,C1では無いでしょうか。

Q値が入っている一番右のセル位置を返す方法

たとえばA行に値(文字列)が横に並んでいるとして
値が入っている一番右のセルの位置を返すようにするにはどのようにすればいいでしょう?

Aベストアンサー

セルの位置を返したいのであれば
=CHAR(MATCH(MAX(1:1)+1,1:1,1)+64)&1
でどうでしょうか。

Qエクセル SUM関数 自動的に最終行を取得したい

A1→1
A2→2

B1→=SUM(A1:A2)

と入力しています。
この状態で
A3→3
と入力した場合
自動的に
B1→=SUM(A1:A3)
にすることは不可能ですか?

「=SUM(A1:A3)」のA3の部分をA列の最終行を取得したいです。
VBAなら可能でしょうか?

ご教授よろしくお願い致します。

Aベストアンサー

範囲内で最終行まで確実に数値があるなら
=SUM(OFFSET($A$1,,,COUNT($A$1:$A$100)))

範囲内で最終行までにブランクがあるなら
=SUM(OFFSET($A$1,,,MATCH(MAX($A$1:$A$100)+1,$A$1:$A$100)))

上記の$A$1と$A$100が範囲にかかわる部分です。
範囲が変わる場合はここを替えてください。

Qセル番号を返す関数

エクセルで、セル番号を返す関数はありますか??
セルの内容ではなくて、番号です。(A1、B3など)
調べてみましたがなかなか見つからなかったので、
わかる方教えてください。
宜しくお願い致します。

Aベストアンサー

文字として"C4"を返す。
=ADDRESS(ROW(C4),COLUMN(C4),4)

式を入力したセルの位置を文字列で返す。
=ADDRESS(ROW(),COLUMN(),4)

ADDRESSの3つ目の引数を変えると
$C$4
$C4
C$4
C4
の4つの形に出来ます。

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング