
No.1ベストアンサー
- 回答日時:
(´・ω・`)
VLOOKUP関数
普通は検索方法に「FALSE」を設定して「完全一致」をさせるのが一般的ですが、
「TRUE」を設定して「一致する値が無い場合、検索値よりも小さい中で一番大きい値」を拾わせるのです。
=VLOOKUP(A1,C:C,1,TRUE)
これでA1セルと一致するか、A1セルの値よりも小さい中で一番大きい値が返ってきます。
ありがとうございます !
trueを設定とは思いつきませんでした。
vlookupにこんな使い方があるなんて感動しました。質問して良かったです。
No.3
- 回答日時:
こんにちは
C列の日付がソートされているなら、No1様のLookUp系の検索で行うのが簡単でしょう。
順序がランダムな場合は、ちょっと工夫が必要になります。
VBAでの回答はすでに出ているので関数での例を以下に。
例えば、以下の式は、指定日がA1セルにあるとして、C19:C100の範囲の日付と比較する例です。
※ 日付は全てシリアル値であるものと仮定しています。
計算したいセルに
=IFERROR(INDEX(C:C,MOD(SMALL(IF((C19:C100<>"")*(A1>=C19:C100),(A1-C19:C100)+ROW(C19:C100)/1000),1)*1000,1000)),"無し")
を入力し、Shift+Ctrl+Enterで確定します。(←必須です)
No.2
- 回答日時:
こんにちは!
VBAになりますが一例です。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, k As Long, wS As Worksheet
Dim dateCnt As Long, sN As String, cN As String
Dim myDate, myMin
myDate = Application.InputBox("指定日を 2018/11/3 のように入力")
For k = 1 To Worksheets.Count
Set wS = Worksheets(k)
For i = 19 To wS.Cells(Rows.Count, "C").End(xlUp).Row
If wS.Cells(i, "C") < DateValue(myDate) Then
dateCnt = DateValue(myDate) - wS.Cells(i, "C")
If myMin = 0 Then
myMin = dateCnt
sN = wS.Name
cN = wS.Cells(i, "C").Address(False, False)
Else
If dateCnt <= myMin Then '//★//
myMin = dateCnt
sN = wS.Name
cN = wS.Cells(i, "C").Address(False, False)
End If
End If
End If
Next i
Next k
Worksheets(sN).Activate
Worksheets(sN).Range(cN).Select
MsgBox "選択されているシートの" & vbCrLf & "選択セルが最直近です"
End Sub
※ インプットボックス入力日より前、再直近のSheetのセルが選択されます。
※ 再直近の日が複数存在する場合は、最後のセルが選択されます。
最初のセルを選択する場合は、コード内の「★」の行の等号「=」を消してみてください。m(_ _)m
ありがとうございます。早速 コードを自分仕様にカスタマイズして動作確認させて頂きました。相変わらずスペシャリストですね。感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCELで直近の日付を抽出する関数
Excel(エクセル)
-
日付のリストから指定した日付に一番近い値を求めたい
Excel(エクセル)
-
【エクセル】指定した日付に一番近い日付を抽出する関数について
Excel(エクセル)
-
-
4
条件が一致するものの中で古い日付を抽出
Excel(エクセル)
-
5
最も近い数値のあるセルを探す
Excel(エクセル)
-
6
エクセルで複数条件を満たす時、n番目に新しい日付を返す
Excel(エクセル)
-
7
最新の日付をVLOOKUP
Word(ワード)
-
8
Excelで同じ商品名で、かつ日付が古いものを抽出する方法
Excel(エクセル)
-
9
Excel関数 基準日に一番近い指定曜日の日付が知りたい
Excel(エクセル)
-
10
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
11
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
12
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
13
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
14
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
15
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
-
18
複数の文字列のいずれかが含まれていたらTRUEを返す関数について
Excel(エクセル)
-
19
リストと一致する値のセルを塗りつぶしたい。
その他(Microsoft Office)
-
20
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
VBA実行後に元のセルに戻りたい
-
Excel VBAで、 ヘッダーへのセ...
-
Excelのプルダウンで2列分の情...
-
VBAでセルをクリックする回...
-
DataGridViewでコードで値を入...
-
エクセルVBAでコピーして順...
-
Excel vbaで特定の文字以外が入...
-
DataGridViewのセル編集完了後...
-
screenupdatingが機能しなくて...
-
EXCELのVBA-フィルタ抽出後の...
-
VBA初心者です。結合セルを保持...
-
実行時エラー438 オブジェクト...
-
セルに画像挿入すると、右セル...
-
VBAでセルに値が入ったときにイ...
-
Application.Matchで特定行の検索
-
VBAで検索して指定の位置に行を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報