[[20190406082929]] 『指定日に一番近い日付を抽出する関数について』(斎藤) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定日に一番近い日付を抽出する関数について』(斎藤)

エクセルの関数について質問です。

データ1
A.........B
佐藤 2011/5/2
佐藤 2011/8/25
佐藤 2012/1/8
山田 2011/6/7
山田 2012/2/13
高橋 2010/7/10
高橋 2010/11/1
高橋 2010/12/5
高橋 2011/2/10

というデータから、

データ2
A.........B
佐藤 2011/5/1
佐藤 2011/9/1
山田 2011/6/1
山田 2011/8/1
高橋 2011/1/1
高橋 2011/2/1

のデータの日付に一番近い日付を
データ1の日付から抽出する関数を教えて頂きたいです。
指定日に一番近い日付を、
未来と過去から抽出する関数です。

分かりづらくて申し訳ございません。
ご教示願います。
よろしくお願いいたします。

iPhoneから送信

< 使用 Excel:Excel2013、使用 OS:unknown >


念のため、正解を示してください。(図の形がありがたい。表示場所も分かるので。)

※ 他の回答者からレスが付いたら、この私の書き込みは無視してください。

(半平太) 2019/04/06(土) 10:20


 仮にこういう表だとして
 F1=INDEX($B$1:$B$9,AGGREGATE(15,6,IFERROR(1/($A$1:$A$9=D5),1000)*ROW($1:$9)/((($A$1:$A$9=D5)*ABS($B$1:$B$9-E5))=AGGREGATE(15,6,(1/($A$1:$A$9=D5)*ABS($B$1:$B$9-E5)),1)),1))
 として配列数式として確定
 でどうでしょう?

 前後で同じ差の場合、最初に出現した日付を返します。
    |[A] |[B]      |[C]|[D] |[E]     |[F]      
 [1]|佐藤|2011/5/2 |   |佐藤|2011/5/1|2011/5/2 
 [2]|佐藤|2011/8/25|← |佐藤|2011/9/1|2011/8/25
 [3]|佐藤|2011/9/8 |← |山田|2011/6/1|2011/6/7 
 [4]|山田|2011/6/7 |   |山田|2011/8/1|2011/6/7 
 [5]|山田|2012/2/13|   |高橋|2011/1/1|2010/12/5
 [6]|高橋|2010/7/10|   |高橋|2011/2/1|2011/2/10
 [7]|高橋|2010/11/1|   |    |        |         
 [8]|高橋|2010/12/5|   |    |        |         
 [9]|高橋|2011/2/10|   |    |        |         

 半平太さんに意見ってほどじゃないんですけど・・・
 >※ 他の回答者からレスが付いたら、この私の書き込みは無視してください。 
 ちょっと回答出しにくいっす。
 できればいろいろな人の回答を参考にしたいので、間違っていたらそれなりにご指摘いただけると助かります。

(稲葉) 2019/04/06(土) 10:42


ユーザー定義関数(マクロ)を使うと、シンプルになります。
例えば、稲葉さんのレイアウトだとして、
F1の数式は、こんな感じです。

=直近日(D1,E1,$A$1:$B$9)

'----

 Option Explicit

 Function 直近日(対象者 As String, 指定日 As Date, リスト範囲 As Range) As Long
    Dim v
    Dim k As Long
    Dim d As Long
    Dim tmp As Long

    v = リスト範囲.Value

    For k = 1 To UBound(v)
        If v(k, 1) = 対象者 Then
            d = Abs(v(k, 2) - 指定日)
            If 直近日 = 0 Then
                直近日 = v(k, 2)
                tmp = d
            Else
                If d < tmp Then
                    直近日 = v(k, 2)
                    tmp = d
'                Else   'リストがソートされているなら
'                    Exit Function
                End If
            End If
        End If
    Next

 End Function

(マナ) 2019/04/06(土) 11:27


 > 半平太さんに意見ってほどじゃないんですけど・・・
 > >※ 他の回答者からレスが付いたら、この私の書き込みは無視してください。 
 > ちょっと回答出しにくいっす。

 ちょっと感覚がすれ違っている気がするんですが、
 質問者の説明で十分答えられると思う回答者がいた場合(その可能性は否定できない)、
 私の要求は過大となるので、返答は要らないという意味なんですけど。

 >できればいろいろな人の回答を参考にしたいので、
 >間違っていたらそれなりにご指摘いただけると助かります。

 この部分は、まったく意味が分かりません。

(半平太) 2019/04/06(土) 11:40


 >私の要求は過大となるので、返答は要らないという意味なんですけど。
 「レスがついたら〜無視してください。 」という内容であれば、
 私は、他の回答者が質問したら半平太さんは答えてくれなくなるんだろうなと、捉えました。
 =質問者の不利になると考えた。

 >質問者の説明で十分答えられると思う回答者がいた場合(その可能性は否定できない)、
 >私の要求は過大となるので、返答は要らないという意味なんですけど。
 であれば、私の勘繰りすぎですね。
 申し訳ございませんでした。

 >>できればいろいろな人の回答を参考にしたいので、
 >>間違っていたらそれなりにご指摘いただけると助かります。
 >この部分は、まったく意味が分かりません。
 こちらも、私の感覚がずれていたようです。
 忘れていただければ幸いです。

(稲葉) 2019/04/06(土) 12:04


 分かりました。次回から、こう表現します。

 「他の回答者からレスが付いたら、この私の問い合わせにお答えいただく必要はありません。」

 (・・でいいのかなぁ)

(半平太) 2019/04/06(土) 12:17


 私だけの感覚にお付き合いいただく必要はございません。 
 何卒、今まで通りでお願いできますか?
 ご不快おかけいたしました。 重ね重ね申し訳ございません。

(稲葉) 2019/04/06(土) 12:30


https://oshiete.goo.ne.jp/qa/11062702.html

 解決したみたいです。
 結局、正解を書いてはくれませんでしたね。
(コナミ) 2019/04/07(日) 21:39

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.