【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

上司から社内カレンダーの作成を依頼されており、
社内の1年間の行事予定を別シート(Sheet1)に用意し、Sheet2のカレンダーに反映させたいと思っています。
vlookup関数を使用し作成したところ同じ日付に複数の予定がある場合、頭の一つしか反映されないため、困っています。

同一の日付に複数の予定がある場合でも、カレンダーに反映されるような関数の式を教えていただけないでしょうか。

色がついているセルに反映させたいと思っていますが、予定が2,3件ある場合に下に2,3行と続く形にしたいです。

不勉強でわかりにくい点もあるかと思いますが、何卒よろしくお願いいたします。

「別シートの年間行事表をカレンダーに反映さ」の質問画像

質問者からの補足コメント

  • すみません。行事表の画像が添付できておりませんでした。

    「別シートの年間行事表をカレンダーに反映さ」の補足画像1
      補足日時:2024/08/19 19:18
  • すみません。会社の環境がExcel2019でして、FILTER関数を使用できませんでした。
    FILTER関数を使用しない方法はありますでしょうか。

      補足日時:2024/08/20 21:58

A 回答 (2件)

No1です。



>FILTER関数を使用しない方法はありますでしょうか。
旧来の方法であれば、SMALL(IF(~~~ などを利用した配列数式による方法があります。
(「エクセル 詰めて抽出」あたりをキーに検索すれば見つかると思います)
配列数式にしたくなければ、配列計算が可能なAGGREGATE関数を利用しても可能です。
(こちらの方法は、検索してもほとんどヒットしないかもしれません)

とは言え、日付のセル位置も計算で求めなければならなくなるので、それなりに煩雑な式になります。
過去に類似例(もう少し複雑ですが)に回答した記憶がありますので、ご参考までに。
https://oshiete.goo.ne.jp/qa/13167346.html
    • good
    • 0

こんばんは



カレンダーの日付欄は「2024/8/19」のようなシリアル値の値で、表示書式で日にちだけを表示しているものと仮定しました。

Office365等の環境であれば、B4セルに
=IF(B3="","",FILTER(Sheet1!$B:$B,Sheet1!$A:$A=B3,""))
のような式を入力すれば、該当が複数ある場合には下方にスピルされます。

ご提示の表では、表示蘭が4セル分しかないので、該当項目が5以上ある場合には、上式では「#スピル!」のエラー表示になります。
これを回避して、5項目以降はカットしてよいのであれば、式を
=IF(B3="","",IFERROR(INDEX(FILTER(Sheet1!$B:$B,Sheet1!$A:$A=B3,""),ROW(A$1:A$4)),""))
のようにしておけば良いでしょう。

他の欄も同様ですが、上式をフィルコピーまたはコピペすることで可能です。
    • good
    • 0

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

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


おすすめ情報

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