
No.6ベストアンサー
- 回答日時:
No.5です。
D列のエラー処理をしていませんでした。
D3セルの数式を
=IFERROR(IF(C3="","",INDEX(J$4:J$10,IF(MOD(MATCH(F$7,J$4:J$10,0)+COUNTIF(D$2:D2,"?*"),COUNTA(J$4:J$10))-1=0,COUNTA(J$4:J$10),MOD(MATCH(F$7,J$4:J$10,0)+COUNTIF(D$2:D2,"?*")-1,COUNTA(J$4:J$10))))),"")
にしてください。m(_ _)m
書き込みありがとうございます。
すごい!!の一言です。可動しました。
取り急ぎ関数式をコピペして、使用させて頂きました。
ゆっくり解読させて頂きます。できるかな・・・
書き込みして頂いた皆さん本当にありがとうございました。
またよろしくお願いします。
関数の得意な皆さん一体どんな仕事をなさってるのか、すご過ぎて
そんな疑問さえもちました。
No.5
- 回答日時:
こんばんは!
土日・祝日の扱いがある場合、シリアル値で処理した方が簡単だと思います。
一例です。
とりあえず担当者、パターンともH・J列の4~10行目までの範囲を対象としています。
↓の画像のようにSheet2に祝日データを作成しておきます。(B列にシリアル値が入っている)
Sheet1のA1セルに「西暦年」、C1セルに表示したい「月」の数値を入力するとします。
A3セルの表示形式はユーザー定義から d としておき
=IF(MONTH(DATE(A$1,C$1,ROW(A1)))=C$1,DATE(A$1,C$1,ROW(A1)),"")
B3セルは
=TEXT(A3,"aaa")
C3セル
=IFERROR(IF(OR(F$4="",WEEKDAY(A3,2)>5,COUNTIF(Sheet2!B:B,A3)),"",INDEX(H$4:H$10,IF(MOD(MATCH(F$4,H$4:H$10,0)+COUNTIF(C$2:C2,"?*"),COUNTA(H$4:H$10))-1=0,COUNTA(H$4:H$10),MOD(MATCH(F$4,H$4:H$10,0)+COUNTIF(C$2:C2,"?*")-1,COUNTA(H$4:H$10))))),"")
D3セル
=IF(C3="","",INDEX(J$4:J$10,IF(MOD(MATCH(F$7,J$4:J$10,0)+COUNTIF(D$2:D2,"?*"),COUNTA(J$4:J$10))-1=0,COUNTA(J$4:J$10),MOD(MATCH(F$7,J$4:J$10,0)+COUNTIF(D$2:D2,"?*")-1,COUNTA(J$4:J$10)))))
という数式をそれぞれ入れ、A3~D3セルを範囲指定 → D3セルのフィルハンドルで月末の33行目までフィル&コピー!
これでF4・F7セルのデータを入れ替えれば
1日目はF4・F7から始まるデータが表示されると思います。m(_ _)m

No.4
- 回答日時:
#3です。
投稿してから気づきました。
G2、H2の値は一度しか参照していないので、D、E列の式に直接組み込んでしまえば、G2、H2の集計欄は不要でしたね。
申し訳ありませんでした。
No.3
- 回答日時:
こんにちは
横からですが、関数派に一票です。
祝日の計算は面倒なので、少し変更させていただいていますが、以下の仮定と変更を行っています。
・B列の曜日はDate値を書式aaaで曜日表示している仮定
・C列に祝日の欄を追加し、祝日には祝印等を入力すると設定
・G、H列の担当、パターンは上詰めで記入されている
(とりあえず、30人、30パターンまでとしています)
・土日祝日を除いた日に、担当者、パターンともリストの初めから順に繰り返すものと仮定
(前月の続きなどで途中からスタートする場合は、式中に初期値の項を加えることで対応可能ですね)
※ 担当者、パターンは同じ数でなくても対応可能なように考えています。
◇作成方法
1)C列に祝日の欄を追加(C列でなくても良いですが、とりあえずC列としました)
(空白以外であれば祝日と判定します)
2)G列に担当者リスト、H列にパターンリストとし3行目から上詰めで入力
3)G2に以下の式をいれ、H2にフィルコピー
=COUNTIF(G3:G33,"<>")
(それぞれの数をカウント。とりあえず30種類まで)
4)D2に以下の式を入れ、E列および下方にフィルコピー
=IF(AND(WEEKDAY($B2,2)<6, $C2=""),INDEX(G$3:G$33,MOD(SUMPRODUCT((WEEKDAY(A$2:$B2,2)<6)*1,(B$2:$C2="")*1)-1,G$2)+1),"")
※ 曜日の赤色表示や枠線の表示などを自動化なさりたい場合は、条件付き書式を用いれば可能と思います。
※ 祝日判定を別途関数化なさっていたりするのなら、それを利用してC列に空白以外の表示となるようにすれば、そのまま利用可能だと思います。

投稿ありがとうございます。
ご丁寧に関数式をご入力ありがとうございました。
祝の欄をあえていれるということで大変勉強になりました。
関数も分かり安かったのでなんとなく解読できました。
こちらのパターンも勉強し実用させて頂きます。
今回はベストアンサーをつけず大変恐縮ですが
またぜひご指導お願いします。
No.2
- 回答日時:
場所了解しました。
祝日をどう扱うかのルールが必要ですが、その前に
まずこの表、年月がありませんけど年月が決まれば
曜日は決まります。例えばa1に年、b1に月を入力するとすれば
a3の式は=DATE(a1,b1,1)
A4は=a3+1
b3の式は=a1
表示形式を”aaa"
A4とB3を下方向にオートフィルすれば年月だけ入力すれば
曜日が自動的に変わります。
この事が曜日を得るために必要となるので
作業列で
=WEEKDAY(A3+1)>2
これで平日にのみTRUEが出るので
それをカウントして3で割ればという事です。
上記式にMATCHで祝日を織り込む事も
考えられます。
再度書き込みありがとうございます。
曜日日付、曜日については関数を使い解決しておりまして
問題は、担当者とパターンを自動的に返すことで
やはり教えて頂いた様に、作業シートしかないのかなとただいま行っております。
ただ利用する人が初心者のため(私以外の人間)その作業をできるかというと無理があり、マクロのボタンまたは、当初の説明のようにセルにスタートさせる名前とパターンをF4・F7のみ入力で自動的に入るように
に簡易的にならないかと思っています。
2つを併せ、作業シートの工程をマクロにしてみようかなと苦戦中です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】数式を入力したい。...
-
【マクロ】excelファイルを開く...
-
エクセルの関数について
-
【マクロ】変数に入れるコード...
-
エクセルのリストについて
-
【マクロ】左のブックと右のブ...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】元データと同じお客...
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ画像あり】❶1つの条件...
-
エクセルの複雑なシフト表から...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報