「教えて!ピックアップ」リリース!

いつもお世話になっております。
エクセルで作成した万年カレンダーに複数の予定を反映させるにはどのようにしたらよろしいのでしょうか。
同一Sheet内で予定表に入力した情報が万年カレンダーに自動で反映されるようにしたいのですがどうすればよろしいでしょうか。

画像は理想図となっております。よろしくお願いいたします。

「エクセルカレンダーに予定表を反映したいで」の質問画像

A 回答 (6件)

No4です。



>降順にすることができない状況です。
>よろしければご教授していただけないでしょうか。
方法が理解できれば応用は可能と思います。

時刻がシリアル値なら、そのままで大小を比較することが可能です。
降順にしたければ、AGGREGATE関数の第一引数で、Largeからの順に取るようにすれば降順になるでしょう。
とは言え、最終的に取得したいのは「行番号」なので、時刻を得てもそのままでは使えないため、行番号を取得できるようにするには工夫が必要になります。
関数から返される値は一つなので、「比較は時刻で行い、行番号を得る」ためには、例えば、整数部を時刻、小数点以下を行番号等としておいて比較し、後でその値から小数以下の部分のみを取り出せば、該当する行番号を得ることができます。

まぁ、関数で一発でやろうとするとそれなりに面倒で複雑になりがちです。
(No4の式でも十分に複雑だと思いますので)
作業列などを用いて分解して処理すれば、複雑さは相当に低減できますし、計算の負荷も激減しますので、実際にはこちらの方法の方がお勧めです。

もしも、365環境であれば、FILTER関数とSORT関数を利用すれば、式はかなり簡単になるはずと思います。
(私の環境では使えませんので・・)
    • good
    • 0

》 画像は理想図となっております。


はは~、姑息な予防線を今から張らないでくださいねッ!

添付図が示す年月日と曜日が実際どおりか否か読み取れないけど、実は「予定」の件数が1日当たり3件以上もあり得るなんてことは後で仰らないですか?
それから、「万年」とやらの「カレンダー」の作成はご自分で「御茶の子さいさい」なのですねッ!
    • good
    • 1

こんにちは



>自動で反映されるようにしたいのですがどうすればよろしいでしょうか。
予定表の日付から同じ日のものを検索して表示すれば良いと思われます。

実際のデータがどのような形式になっているのか説明がないので、勝手に以下と解釈しました。
・E列の日付はシリアル値(=エクセルの日付型のデータ)である。
・カレンダーの日付(=4行目、8行目、12行目…の日付)も同様に
 シリアル値で、書式表示で d 等として、日付のみ表示してある。
 (上記が成り立たないと、検索自体が上手くいきません)
・F列の時刻表示は、文字列で入力されている。
 (もしもシリアル値の場合は、そのまま数値に変換されて表示されます)


上記の仮定が成り立つ場合、ご提示のレイアウトで、H5セルに

=IF(INDEX(H:H,INT(ROW(H4)/4)*4)="","",IFERROR(INDEX($C:$C,AGGREGATE(15,6,ROW($E$3:$E$10)/($E$3:$E$10=INDEX(H:H,INT(ROW(H4)/4)*4)),MOD(ROW(H1),4)))&" "&INDEX($F:$F,AGGREGATE(15,6,ROW($E$3:$E$10)/($E$3:$E$10=INDEX(H:H,INT(ROW(H4)/4)*4)),MOD(ROW(H1),4))),""))

の関数式をコピペし、これをH5:N7の範囲にフィルコピー
そのまま、H5:N7をコピーし、H8:N11へとコピペ(以下同様)
で、いかがでしょうか?


※ 同じ日付の予定は、予定表の出現順に表示されます。
※ ご提示の時刻表示が、シリアル値ではなく文字列っぽいのでやめておきましたが、時刻も考慮して順に表示したい場合は、少し複雑になりますが同様の考え方で可能です。
(ただし、時刻表示がシリアル値である必要があります)
    • good
    • 0
この回答へのお礼

ご返信ありがとうございます。
掲示していただいた数式を元にカレンダーへの反映を行うことができました。
AGGREGATE関数に関して再度調べ、時刻も考慮した表示順になるように作成を試みましたが、降順にすることができない状況です。よろしければご教授していただけないでしょうか。

お礼日時:2022/10/01 11:23

こんな不細工なデータ構造にしてしまったらどうしようもない。

こういうことやるから日本の生産性は、OECD最下位になってしまう。最初から方針を転換してGoogleアプリを使いましょう。

(2) スプレッドシートに入力した予定をGoogleカレンダーに登録する方法~GAS(Google Apps Script)~ - YouTube
    • good
    • 0

万年カレンダーということは、年や月を変えると日付の位置が変わる仕組みになっているということですよね?



カレンダー部分の日付はどこでどのような式で判断されてますか?
    • good
    • 0

カレンダー側のセルの位置から、日付を算出し、その日付の値が一覧表にあれば値を参照する。



(´・ω・`) そんな処理をするだけです。
その処理の中の何が分かりませんか。

残念ですが、ここは「代わりに作ってください」と作業依頼をする場所ではなく
自分で問題解決できるようになるためのアドバイスをもらう場所です。
初めから自分で作る気が無いのであれば、有料サイトで作業依頼をすることを薦めます。

・・・

という事で、
まずはカレンダーの予定を表示させたいセルにそのセルが示す「年月日」を表示できるように数式を作りましょう。
これができないと以後なにもできません。
できますか?
    • good
    • 1

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

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


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

人気Q&Aランキング