[[20160202114706]] 『HLOOKUPの検索値が=TODAY()』(あい) ページの最後に飛ぶ

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

 

『HLOOKUPの検索値が=TODAY()』(あい)

HLOOKUPの検索値が=TODAY()のセルではエラーになってしまうようです。
表示形式はyyyy/mです。
範囲の1行目も表示形式yyyy/mで日付が入っています。
表示はされていない日付が違うから、認識されないということなのでしょうか?

2行目の値を返せる方法を教えてください。宜しくお願いいたします。

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


 まぁ、落ち着きましょう。HLOOKUPの検索値がTODAYであっても特に問題はないはずです。

 まずはどのような元表があって、式はどのように入れているのか?
 エラーはどんなエラーなのか、などきちんと具体的に書いて下さい。

 個人的には第4引数を省略しているのかな?と思いますが。(あてずっぽうです。そのくらいしか推測できない内容なので)
(コナミ) 2016/02/02(火) 12:11

 表示書式がどうであれ、あくまで TODAY() の値(日も含まれる)と、検索領域の値(もちろん日も含まれる)がマッチングされますから、
 日付がないと、(もし 第4引数が FALSE なら)当然そうなりますね。

 もし、検索領域の実際の日付が 1日になっていて、それが昇順になっていたとすれば
 4つめの引数を省略するか、TRUE にすると、日付が違っていても取得できると思います。

(β) 2016/02/02(火) 12:19


 もし、見出し部が必ずその月の一日になっているのであれば
 =HLOOKUP(TODAY(),…)
 を
 =HLOOKUP(TODAY()-DAY(TODAY())+1,…)
 や
 =HLOOKUP(EOMONTH(TODAY(),-1)+1,…)
 とするのはどうだろうか。
(ねむねむ) 2016/02/02(火) 13:10

βさんのTRUEにするでできました。
ありがとうございました。
ねむねむさんの式でもできました。
ありがとうございました。

(あい) 2016/02/02(火) 13:22


すみません。
もう少し教えてください。
上記のやり方でできたのですが、検索範囲の2016/2などの日付の値を、=B2のよに持ってきているものだと、返してくれなくなってしまいました。
直接セルに日付を入力したものでないとだめなのでしょうか。
初心者過ぎて申し訳ないです。
宜しくお願いいたします。
(あい) 2016/02/02(火) 15:10

 2016/2 をいれると 2016/1 の値を持ってきたということなら セルの値が 3日 とか 10日とか
 今日より大きな日付だったのでは? 

 もし、=B2 のように持ってくる、その B2 が 1日 とは限らないのであれば、
 =B2 のかわりに  =EOMONTH(B2,-1)+1) とか。

(β) 2016/02/02(火) 16:08


EOMONTHでちゃんと返されました。ありがとうございます。
でもいまいちよくわかりません。
例えばA1に2016/2と直接入力した場合はちゃんと2行目(A2の値)が返されて、
A1=B2(B2には直接2016/2と入力しました)にすると#N/Aになってしまったのです。。。

(あい) 2016/02/02(火) 16:24


 B2セルを選択したとき数式バーにはなんと表示されているか?

 あるいは「=B2」と入力されているA1セルの表示形式を年月日表示にして日がどうなっているかの確認でもいいが。

(ねむねむ) 2016/02/02(火) 16:47


 ねむねむさんありがとうございます。
返事が遅くなりすいません。

>B2セルを選択したとき数式バーにはなんと表示されているか?

2016/2です。

>あるいは「=B2」と入力されているA1セルの表示形式を年月日表示にして日がどうなっているか

2016/2/1です。

(あい) 2016/02/04(木) 14:21


 これは矛盾しているように思える。

 まず、セルの表示形式が「yyyy/m」になっていて入力値が「2016/2/1」である場合、セルには「2016/2」と表示されるが
 数式バーには「2016/2/1」と表示される。

 その数式バーに「2016/2」と表示されるということはB2セルの値は文字列の「2016/2」だということになる。

 そのB2セルを「=B2」と参照したセルも文字列となり表示形式を年月日表示にしても「2016/2」のままのはずだが。
 どこかに確認ミスなどがないか?
(ねむねむ) 2016/02/04(木) 14:39

 あ、もしかしてB2セルを参照するセルは
 =EOMONTH(B2,-1)+1) 
 だということか?

 であればB2セルが「2016/2」で参照しているセルが「2016/2/1」で矛盾はない。

 その場合、考えられることはB2セルの表示形式が文字列になっているか、または他からコピーした「2016/2」という値を
 張り付けたりしていないか?

 その場合、B2セルは日付データではなく文字列の「2016/2」になっていることになる。

 そのため単純に「=B2」では参照したセルも文字列になるため検索できないことになる。

 参照を
 =EOMONTH(B2,-1)+1)
 とした場合はEOMONTH関数が日付を表す文字列をその日付に変換してくれるため検索できるようになる。
(ねむねむ) 2016/02/04(木) 14:46

なるほどー。とても勉強になりました。
ありがとうございました。
(あい) 2016/02/04(木) 16:17

コメント返信:

[ 一覧(最新更新順) ]


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