痔になりやすい生活習慣とは?

例えば…
A1~A9までの9つのセルに、A1=100,A5=120,A6=20という3つの値が入っています。

A1~A9の範囲で一番下にある値を表示(ここではA6の20という値)するような関数ってあるのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (10件)

    • good
    • 0

こんなテーマがまだ締め切られていないとは驚きました。


=MATCH(MAX(A:A),A:A)
これで一番下の行番号が返されます。お試しください。
行番号さえわかれば値を取り出せたようなもの。後はどうぞ。
    • good
    • 4

=IF(COUNT(A1:A9)=0,0,INDEX(A1:A9,MATCH(10^20,A1:A9),))



なんて言うのはどうでしょう?

10^20は、A1~A9に入力されるであろう最大値以上
(最大が100なら101以上)ならいくつでもいいです。
    • good
    • 1

#5の回答で、例えば、セルB1にその値を表示したいのであれば、End Sub の手前に下の1行を加えると最下行の値が表示されます。


Range("B1").Value = Range("A" & ActiveCell.Row).Value
    • good
    • 0

#3、#4です。


#4のコードが長いので、VBAで良く使われる
End(xlUp)を使って短くしました。
1列だけ範囲指定したセルの、途中の空白セル(DELETEキーを押したと同じ状態、または未入力セル)は影響を受けないように考えています。
範囲指定した範囲より外の範囲の値は考慮されません。
Function lastclv(a)
t = a.Cells(1, 1).Row
r = a.Rows.Count
c = a.Column
lastclv = Cells(t + r, c).End(xlUp)
End Function
セルに=lastclv(a5:a12)などと入れます。
A4=a,A5=s,A7=d,A12=z,A13=fの場合
=lastclv(a5:a12)はzです。
=lastclv(A5:A15)はsです。
    • good
    • 0

エクセル関数はありませんが、編集機能の「ジャンプ」を使えば該当セルにコントロールが移ります。


これをマクロで記述すると以下のようになります。

Sub Macro1()
Range("A1").Select
Selection.SpecialCells(xlCellTypeLastCell).Select
End Sub

試してください。
    • good
    • 0

#3です。


行番号で回答してしまいました。値であるなら
Function lastcl(a)
Dim cl As Range
m = 1
For Each cl In a
If cl <> "" And cl.Row > m Then
m = cl.Row
n = cl.Column
End If
Next
lastcl = Cells(m, n)
End Function
ついでに、配列数式になりますが、最下行の「行番号」は
=MAX(IF(A1:A20="","",ROW(A1:B20)))
と入れて、Shift+Ctrl+Enterで求められます。
最下行の値となると#1のご回答のようになるのかなあ。
    • good
    • 0

ユーザー関数をどうですか。


ツール-マクロ-VBE-挿入-標準モジュールに下記をコピーして貼りつける。
Function lastcl(a)
Dim cl As Range
m = 1
For Each cl In a
If cl <> "" And cl.Row > m Then
m = cl.Row
End If
Next
lastcl = m
End Function
値をセットしたいセルに=lastcl(A1:A9)と入れます。
    • good
    • 0

数値でも文字列でもA1:A9の範囲で一番下に入力した値を返すものとします。


=INDIRECT("R"&MAX(ROW(A1:A9)*NOT(ISBLANK(A1:A9)))
&"C"&COLUMN(A1),FALSE)
配列数式にするため、Ctrl+Shift+Enterで入力
    • good
    • 0

=MIN

    • good
    • 1

このQ&Aに関連する人気のQ&A

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

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

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

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

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エクセルである列の一番下の値を表示する方法

エクセルで、ある列の一番下の値だけを他のセルに表示する方法がわかりません。
どなたかご存知の方おりましたら、ご教授お願いいたします。

Aベストアンサー

関数で求める方法です。
対象を仮にA列とします。

1.A列が文字列の場合
=INDEX(A:A,MATCH("^",A:A,-1))

2.A列が数値の場合
=INDEX(A:A,MATCH((10)^15,A:A,1))

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にて列の一番下にある数値を表示する関数

質問させていただきます。

エクセルの関数で「○列に入力されている数値の中で常に一番下にある数値を表示する」関数などありますでしょうか?

例えば
B列に数値を入力していき、一番下?最終行?にある数値を自動で表示させたいです。下の例では「80」をとあるセルに表示させたいです。
 A  B  C  D  ・・・・・
1  100
2   99
3  150
4   80




=MAXという関数は見つけることはできたのですが・・・
=MAXの関数では、最大値しか表示できないので・・・

色々と調べてみたのですが、調べ方が悪いのか探し出せませんでした。
お手数ですがよろしくお願いします。

Aベストアンサー

数値データの最終行は
=MATCH(10^15,B:B,1) で何行目かわかります。
したがって、
=INDEX(B:B,MATCH(10^15,B:B,1)) で最終行の値を取得できます。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

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ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセル シート内の一番下のセルに移動したい

エクセル シート内の一番下のセルに移動したいです。
かなりのデータ量なので一番下への方法と中ごろへの移動の方法も教えて頂ければと思います。

Aベストアンサー

該当する列で連続した一番下のデータには、Ctrlキー+↓キーで飛びます。
シート内のどこからでもA1にはCtrlキー+Homeキーで飛びます。

中どころはちと難しいですが、一番下に飛んで、仮にA10000だったら、画面左上の「名前ボックス」にA5000と打ち込んでEnterキーではどうでしょう。

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 最終行のデータを他のセルに参照したい

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ランキング