
D1セルでMAX関数を用いて、A1, B1, C1セルのいずれかの日付のうち最新の日付を返したいとします。
D1=MAX(A1:C1)
サンプルとして、A1,B1,C1に架空の日付を直接入力した際は、D1に最新の日付が返ってきました。
Use Caseとしては、A1~C1すべてに日付が入ってる場合もあれば、いずれかの場合もあれば、いずれも空白の場合もあります。このサンプル段階では、いずれのケースで試しても、ちゃんと最新の日付が返ってきましたし、すべて空白の場合はD1も空白でした。
しかし、実際のレポートでは、A1,B1,C1セルはVlookupで別のシートから日付を取得する設計で、その場合はD1に=MAX(A1:C1)と入れても何も値が返ってきませんでした。例えばVlookupでA1には日付が返ってきていて、B1は""、C1も""の場合、D1にはA1の日付が表示されて欲しいのですが、空白表示のままです。試しにB1に架空の日付を手入力したら、その日付がD1に表示されました(A1を認識してない感じ)。
説明が難しいのですが、こういった現象がある場合、原因としてどのようなことが考えられますでしょうか?ご教授いただければ幸いです。
サンプルではうまくいって、本番環境でうまくいかないので困っています・・・
補足情報が必要な場合はお知らせください。
どうぞ宜しくお願いします。
No.4ベストアンサー
- 回答日時:
こんばんは!
すでに回答があるように"/"でつないだ場合は文字列になると思います。
>=VLOOKUP(B2,Training一覧!A:E,3,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,4,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,5,FALSE)
という数式を
>=DATE(VLOOKUP(B2,Training一覧!A:E,3,FALSE),VLOOKUP(B2,Training一覧!A:E,4,FALSE),VLOOKUP(B2,Training一覧!A:E,5,FALSE))
とし、シリアル値にしたらどうなりますか?
※ 未検証ですので、
改善されなかったらごめんなさい。m(_ _)m
=Date関数を使ってみたろ、問題が解決しました。実現したかった「最新の日付を返す」ことができました。アドバイス大変ありがとうございました。
No.5
- 回答日時:
>Training一覧にある「年」「月」「日」を"/"で結合して日付化してるのですが、これがご指摘の「文字列になっている」ということと同義でしょうか?
「&」で結合したら、文字列になります。
この場合の解決方法がNo.1の回答に示されています。
>>=Vlookup(検索値,範囲,列番号,検索の型)*1
この「*1」がそれです。
Excelでは文字列で記述された「数値と見なせる値」に「0(ゼロ)」を加減算したり「1」を乗除算すると文字列から数値に変わると言うものです。
="20"&"16"
は、"2016"という文字列ですが、
=("20"&"16")*1
は、2016と言う数値になります。
="平成27年"&"2月"&"15日"
は文字列になりますが、
=("平成27年"&"2月"&"15日")*1
は日付を示す数値(シリアル値)になります。
=Date関数を使ってみたろ、問題が解決しました。実現したかった「最新の日付を返す」ことができました。ご教授いただいた内容、今後に活かしていきます。大変ありがとうござました。

No.3
- 回答日時:
No.1の方へのコメントを拝見しました。
=VLOOKUP(B2,Training一覧!A:E,3,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,4,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,5,FALSE)
この検索値B2には何が入っていますか?
同じ検索値で年月日それぞれは取得できないと思います。
B2の内容と
Training一覧! のA列からE列の内容を書いて下さい。
データの持ち方がまずいのだと思いますが、現状をきちんと把握しないと修正方法を回答できないので、よろしくお願いします。
お返事が遅くなり大変申し訳ありません。B2の内容とTraining一覧!のA列からE列の内容をお知らせしようと準備をしてるところに、他の方から"/"が原因で文字列と認識しているとのご指摘賜り、一旦=Date関数を使ってみたろ、問題が解決しました。実現したかった「最新の日付を返す」ことができました。サポート本当に有難うございました。
No.1
- 回答日時:
根本的に元データの日付がシリアル値ではなく文字列になっていると思われます。
または
=Vlookup(検索値,範囲,列番号,検索の型)&""
になっているとか?
=Vlookup(検索値,範囲,列番号,検索の型)
にしてみるとか? もっと能動的に
=Vlookup(検索値,範囲,列番号,検索の型)*1
ありがとうございます。
質問の補足コメントとしてVlookの式を掲載させていただきましたが、
=IFERROR(VLOOKUP(B16&$V$6,受講状況!D:E,2,FALSE),"")
のような内容です。
例えば、B16が受講者名で、V6に研修名が入っており、その2つを結合させた内容が
「受講状況」シートD列に、同シートE列に受講日が入っていて、その日付が返ってくるようになっています。
>根本的に元データの日付がシリアル値ではなく文字列になっていると思われます。
でハッしたのですが、「受講状況」シートE列にある受講日、これは書式設定で表示形式を日付に設定してるのですが、これもまた「Training一覧」という別シートにデータをLookupしてまして。。
=VLOOKUP(B2,Training一覧!A:E,3,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,4,FALSE)&"/"&VLOOKUP(B2,Training一覧!A:E,5,FALSE)
Training一覧にある「年」「月」「日」を"/"で結合して日付化してるのですが、これがご指摘の「文字列になっている」ということと同義でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) 【画像あり】A1が●+B1と同じ文字がB列にある+C1と同じ文字がC列にある場合D1に〇を付ける 3 2023/03/09 18:18
- Excel(エクセル) エクセルの関数について教えてください。 A1=B1*C1*D1の時 C1D1のセルのどちらかがが空白 1 2022/05/07 23:01
- Excel(エクセル) エクセルで月末、月初の判定をしたい。 4 2022/05/18 23:22
- Excel(エクセル) エクセルで教えて下さい。 2 2022/05/18 13:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelに入力した個々の日付の数...
-
31:30:00が1900/1/1 7:30:0
-
日付だけを変更して印刷(Excel)
-
エクセルでENTERを押すと数式が...
-
エクセル 当番表の作り方 エク...
-
入力後に日付順になるように自...
-
エクセル関数で日付かどうかの...
-
日付を入力したセルをファイル...
-
Excelで半年後の日付を計算したい
-
Excelで8/26等の日付を全てその...
-
日付入力→指定のセルの色を塗り...
-
【マクロ】A列にある、日付(本...
-
日付の照合でFALSEになります。
-
エクセルで数字列の間に『/』を...
-
エクセルで日付入力欄を作成し...
-
EXCELで直近の日付を抽出する関数
-
【Excel質問】 「本日の日付」...
-
excelでの月の自至の表示
-
エクセルの項目軸に
-
Excelで日付を4ケタで入力し、○...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】A列にある、日付(本...
-
Excelに入力した個々の日付の数...
-
日付だけを変更して印刷(Excel)
-
Excelで半年後の日付を計算したい
-
エクセルでENTERを押すと数式が...
-
31:30:00が1900/1/1 7:30:0
-
入力後に日付順になるように自...
-
Excelで8/26等の日付を全てその...
-
エクセルで数字列の間に『/』を...
-
エクセル 当番表の作り方 エク...
-
エクセルで日付入力欄を作成し...
-
ファイルのオープン時に今日の...
-
エクセル関数で日付かどうかの...
-
エクセルで1年後の月末を表示さ...
-
EXCELで直近の日付を抽出する関数
-
エクセル グラフ 軸の日付表記...
-
excelで月末日を判定したい
-
WORDで翌日や翌々日の日付を表...
-
ワード差込について
-
日付の照合でFALSEになります。
おすすめ情報
早速に大変ありがとうございます。
ご指摘のとおりで、D1の書式設定はユーザー定義でyyyy/m/d;;
としています(どなたかの別スレッドで拝見してそのようにしました)。
A1,B1, C1はそれぞれ日付設定で、Vlookupの式は以下のようなものです。
=IFERROR(VLOOKUP(B16&$V$6,受講状況!D:E,2,FALSE),"")
例えば、B16が受講者名で、V6に研修名が入っており、その2つを結合させた内容が
「受講状況」シートD列に、同シートE列に受講日が入っていて、その日付が返ってくるようになっています。