アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつも大変お世話になっております。
表題のとおりなのですが可能なのでしょうか?
C19からC100 まで日付が入っているとしてC100セルは可変です。
同様のシートが10個あります。
マクロでも関数でも構いませんので教えていただけませんでしょうか?

A 回答 (3件)

(´・ω・`)


VLOOKUP関数

普通は検索方法に「FALSE」を設定して「完全一致」をさせるのが一般的ですが、
「TRUE」を設定して「一致する値が無い場合、検索値よりも小さい中で一番大きい値」を拾わせるのです。
 =VLOOKUP(A1,C:C,1,TRUE)
これでA1セルと一致するか、A1セルの値よりも小さい中で一番大きい値が返ってきます。
    • good
    • 2
この回答へのお礼

ありがとうございます !
trueを設定とは思いつきませんでした。
vlookupにこんな使い方があるなんて感動しました。質問して良かったです。

お礼日時:2018/12/07 14:44

こんにちは



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で確定します。(←必須です)
    • good
    • 0
この回答へのお礼

ありがとうございます。わたくしにはこの関数式は凄過ぎて書けません。。超越してます。感謝致します。

お礼日時:2018/12/07 14:55

こんにちは!



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
    • good
    • 0
この回答へのお礼

ありがとうございます。早速 コードを自分仕様にカスタマイズして動作確認させて頂きました。相変わらずスペシャリストですね。感謝します。

お礼日時:2018/12/07 14:47

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

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


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