Excelカレンダーで休暇を入れる方法|必ずしも昇順にソートされていない範囲を参照して判定する方法は?

このQ&Aのポイント
  • Excelカレンダーで休暇を入れる方法について、祝日を指定する範囲を作り、カレンダーの日付とVLookUpでマッチングして判定する方法が一般的ですが、必ずしも昇順にソートされていない範囲を参照して判定する方法はありませんか?
  • 具体的には、A1セルにある任意の日付に対して、その日付がB1~B20にある任意の日付と合致するかどうかを判定する関数式が欲しいです。IF文を20個入れ子にする方法は分かっていますが、よりスマートな方法があれば教えてください。
  • 専門家の回答をお待ちしています。Excelで休暇を入れる方法について、非常に便利な手法があるかもしれません。
回答を見る
  • ベストアンサー

Excelカレンダーで休暇を入れる

Excelでカレンダーを作る方は多くおられると思います。 なので祝日を入れる方法は「祝日を指定する範囲を作り、カレンダーの 日付とVLookUpでマッチングして判定する」と一般化されていますが、 祝日ではなく、ランダムに発生する休暇、それも「必ずしも昇順にソート されていない範囲」を参照して判定する方法はないでしょうか? 具体的には、例えば「A1セルにある任意の日付(日付シリアルで設定) に対して、その日付がB1~B20にある任意の日付(昇順/降順でない ランダムな日付で、空欄もランダムに発生する)」と合致するかどうか を判定する関数式はないでしょうか? IF文を20個入れ子にすれば出来ることは分かっているんですが、もっと スマートな方法があれば・・・。 識者の回答お待ちしています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

VLOOKUP関数でできます。 エクセルでカレンダー【祝日を表示編】 http://kokoro.kir.jp/know/calendar3.html VLOOKUP(検索値, 範囲, 列番号, FALSE) と、4番目の引数にFALSE(または0)を指定すると、順不同の場合でも合致する場合は対象の値、合致しない場合は#N/Aを返します。 なので、#N/Aならば休日でない、それ以外の数値ならば休日と判定とか。

FEX2053
質問者

お礼

あ、確かに=Vlookup(A1,B1:B20,1,false)で行けましたね。何を悩んでいたんでしょうか・・・。 回答ありがとうございました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

=COUNTIFS(B1:B20,"<>",B1:B20,A1)>0 でいいのでは?どれかに合致すればTRUE、合致しなければFALSE

FEX2053
質問者

お礼

お礼が漏れちゃってたみたいです。 確かにこの方法でもできました。ありがとうございました。

  • msMike
  • ベストアンサー率20% (363/1772)
回答No.2

》 「必ずしも昇順にソート されていない範囲」を参照して判定する方法は 》 ないでしょうか? まさか「VLookUpでマッチングして判定する」には昇順にソートされていないとダメと誤解していませんか? 下記はヘルプ文からの抜粋ですけど、参考になれば仕合わせです。 検索の型に TRUE を指定した場合、範囲の左端の列のデータは、昇順に並べ替えておく必要があります。しかし、 検索の型 に FALSE を指定した場合は、範囲のデータを並べ替えておく必要はありません。

FEX2053
質問者

お礼

確かにその通りで、昇順にソートされてないとダメと思い込んでました。あと、参照列が1列目でも大丈夫というのも。ご指摘ありがとうございました。

関連するQ&A

  • エクセルカレンダーの作り方

    エクセル2003でカレンダーを作成したいです。 作成方法を教えていただきたく投稿いたしました。 祝日カレンダーというシートを作成し、 A5~A50まで日付(2013/01/01と表記) B5~B50まで祝日の名前が入った表を作成しました。           A       B      6  2013/01/01   元旦 7  2013/01/14   成人の日 8  2013/02/11   建国記念の日 9  2013/03/20   春分の日 10 2013/04/29   昭和の日 といった感じです。 別シート「シート1」のE2のセルに 2013/01/01 と日付をいれてあります。 この日付は毎日変わるのですが、そのすぐしたのセルE3のセルに 祝日カレンダーシートに対応している日付がきたら、祝日の名前を表示させたいのです。 1/1なら元旦。1/14なら成人の日。 といった感じです。 このやり方を教えていただけないでしょうか。 よろしくお願い致します。

  • Excelでのカレンダー作成について

    Excelでカレンダー(1カ月分)を作っているのですが、祝日に色を付けるのがどうしてもうまくいきません。 祝日の日付を入れたセルを用意したのですが、1つ関数につき1日分しか色をつけれませんでした =COUNTIF((1),(2))>=1 (1)祝日の日付を入れた複数の範囲のセル (2)カレンダーの日付のセル[1日分] これでやると1カ月分すべてのセルに対して1日ずつ条件を入れなければならないです。 (2)で1カ月分の日付の範囲をすべて選択してみたのですが、うまく表示されませんでした(>_<) どのような関数をつかえば、1カ月分すべての祝日の色を変えることが出来るでしょうか? 回答お願いしますm(_ _)m

  • エクセルで複数のセルをランダムに並べ替えるには?

    方法があるのかないのか分かりません   エクセルで、数字ではない文字の入った複数のセルをランダムに並び替える方法を知りませんか? 「昇順」、「降順」キーを使えばその通りに並べ替えできるのですが、同様に「ランダム」キーがあって、それを押すとランダムに並べ替えが出来るみたいに簡単に出来る方法はないでしょうか、乱数を発生させる関数を使えば出来るようですが、ちょっと分かりずらく難しいです、 誰か、教えてください

  • 土日祝日以外の万年カレンダーを作成したいのですが

    Excelで土日祝日以外の万年カレンダーを作成したいと思っているのですが良い方法がありましたら教えてください。 ちなみに日付の表示は昇順に縦一列です。 よろしくお願いします。

  • Android 標準カレンダーの祝日

    設定をみてもそれらしいのがみあたらないのですが、Androidの標準カレンダーアプリが日本の祝日で日付が赤くなっています。 得にカレンダーで「日本の祝日」を同期してるわけでもないのですが、どこで日本の祝日を判断して日付の文字を赤くしているのでしょうか。 カレンダーは4.2.2-100.2.2b30 Androidは4.2です。

  • エクセルで作る万年カレンダーで使う関数について(パート2)

    再び質問させて頂きます。エクセルで万年カレンダーを作ろうと、解説のホームページを見ているのですが、分からない部分があります。 〔表示例〕   2005/9/19 敬老の日   (      ) 国民の休日   2005/9/23 秋分の日   (      ) 振替休日 〔解説1〕 ※振替休日・・・ 日曜日と祝日が重なったとき ※国民の休日 ・・・祝日と祝日に挟まれた平日 ※振替休日と国民の休日が重なったときは、振替休日とする。 〔解説2〕 (敬老の日と秋分の日) 敬老の日が月曜日に固定されているので、秋分の日の曜日により国民の休日となる可能性があります。 (計算式) ・両祝日間が2日間であることから判定     =IF(B21-B19=2,B19+1,"") ・秋分の日が必ず水曜日になることから判定     =IF(WEEKDAY(B21)=4,B19+1,"") 解説の内容が、全体的にいまいち分かりません。(^^; 祝日同士が3日間の開きがあるのに、”国民の休日”が発生したりするのでしょうか? もしできたら、具体的にカレンダーの曜日まわりを含めて例を挙げて教えて頂けると助かります。 分かる方、ぜひよろしくお願いいたします。

  • Excelで勤怠カレンダーを作る(再掲載)

    WEBSITEをつけそびれので、再掲載します。 Excelで勤怠カレンダーを作っております。 毎月日付の入力面倒で、もっと簡単にできないか考えております。 下記WEBSITEのやり方を考えておりますが、15日が締め日なので、 一番上に1日でなく、16日を記載したいのですが、このWEBSITEの方法の応用もしくは他の方法ないでしょうか? https://forest.watch.impress.co.jp/docs/serial/exceltips/1229690.html 月だけを入力すれば、変更できるようにしたいと考えております。 また中国やタイなど国ごとの祝日に合わせたカレンダーにする方法はございますか? (土日祝日は赤く表記もしくは、日付の横にセルを作成して''Holiday''などと記載したい)

  • エクセル ワークシート操作

    エクセル VBAにてブックを閉じるときに作業をして追加した ワークシートを昇順、もしくは降順(名前、日付など)に 並び替えてから閉じるように する方法がわからないのですが? どのようにやるのでしょうか?

  • エクセルで空白せるだけ削除したい

    エクセルの操作で困っています。 どなたか、ご教授お願い致します。 例えば(4列4行のセルとお考えください)   A  空欄  F  空欄  空欄  C  空欄 空欄   B  空欄 空欄  H  空欄  D   E   G を空欄だけ削除して上に詰めて   A   C   F   H   B   D   E   G のように並び変えたいのですが良い方法はないでしょうか? 空欄を削除したい範囲は非常に広範囲で、どの列も昇順や降順で並んでいる訳ではなくランダムな文字列です。

  • エクセル  日数の求め方

    A列には      B列には 2007/10/1     5 2007/10/2     3 2007/10/3     4 2007/10/4     6 2007/10/5     5 ・ ・ ・ A列は昇順に日付が入っていて B列にはランダムに数字が入っています。 やりたいことは たとえばB1セルの「5」を基準値として 次に「5」がくるのは何日後かを知りたいです。 4日後になると思うのですが どうやったら4と数字を求めるられるのでしょうか? よろしくお願いします。

専門家に質問してみよう