
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関数 基準日に一番近い指定曜日の日付が知りたい
Excel(エクセル)
-
6
エクセル関数式で一番新しい日にちを出すには?
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
条件が一致するものの中で古い日付を抽出
Excel(エクセル)
-
9
難問 VBA 今日の日付より前に対するイベント処理
Visual Basic(VBA)
-
10
エクセルで最新の日付に色をつける
Excel(エクセル)
-
11
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
14
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
15
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
16
DATE型変数を初期化する方法
Visual Basic(VBA)
-
17
VBAで「セルに何か入っている場合」
Windows Me・NT・2000
-
18
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
19
ファイルのオープン時に今日の日付にジャンプ
Excel(エクセル)
-
20
Excelで重複データの件数ではなく、何番目かを求める方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
特定の文字を条件に行挿入とそ...
-
Excel vbaで特定の文字以外が入...
-
Excelで指定した日付から過去の...
-
EXCELで変数をペーストしたい
-
Excel VBA、 別ブックの最終行...
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
vbsのセル値の取得について
-
ExcelのVBAで数字と文字列をマ...
-
Excelのプルダウンで2列分の情...
-
DataGridViewで列、行、セルの選択
-
連続する複数のセル値がすべて0...
-
特定の範囲内に空白セルがいく...
-
VLOOKUP関数で別ファイルを指定...
-
エクセルvba:自己セルの情報取...
-
指定した条件で行セルを非表示...
-
セル色なしの行一括削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
指定した条件で行セルを非表示...
-
特定のセルが空白だったら、そ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel VBA】指定行以降をクリ...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel vbaで特定の文字以外が入...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
セル色なしの行一括削除
-
Excelのプルダウンで2列分の情...
-
screenupdatingが機能しなくて...
-
【EXCEL VBA】Range("A:A").Fi...
-
【VBA】指定したセルと同じ値で...
-
【VBA】飛び飛びの3セルに"完了...
-
VBからEXCELのセルの値を取得す...
-
EXCELのVBA-フィルタ抽出後の...
-
連続する複数のセル値がすべて0...
おすすめ情報