閲覧有難うございます。
Excelを使用してシフト表を作りたいのですが、開始日を各月の11日、締め日を10日とした場合
10日以降の日付を表示しない方法を教えていただきたいです。
日付の自動入力を使っているのですが、月末日が変動する月
(2月や9月など、30日までしかないまたは30日以前に終わってしまう月)
はオートフィルで自動入力の関数文を指定した場合
10日以降の日付まで表示されてしまうのです。
11日から10日まで限定で表示したい場合はどうすればいいでしょうか。
IF文を使えばいいのか、それとももっと別の関数を使うべきなのかわかりません。
教えていただければ幸いです。
以下自分が書いている状態です。
C2に年数(2013) D2に月(今でしたら9)
D3に=DETA(C2,D2,11) E3に=(D3+1)とし、F3・・=(E3+1)となっております。以下右に同じようにオートフィルで関数文が指定されてます。
No.7ベストアンサー
- 回答日時:
#4、cjです。
お礼欄のリクエストへのレスです。エラーになる状況がこちらでは判らないのですが、
何度かシミュレーションして手順を詳細に改めました。
数式についても、#4投稿時に編集ミスがあったので、
それぞれ一文字(絶対参照記号)だけ追加しています。
Xセルの計算結果をYセルで参照して、
そのYセルの計算結果をZセルで参照して、
そのZセルの計算結果を、、、
というような数珠つなぎ状態は
表計算アプリケーションでは、なるべく避けた方が好いです。
でもまぁ、これは私の主義のようなものであって、
「、、、でなければならない」というような意味では決してありませんが、
継続的に扱うブックなら、私はそういう数式を残しません。
私の手順は結構面倒臭いと思いますけれど、それでも、
仕上がった数式の計算ステップ数や参照のあり方などは
シンプルなものになるように書いています。
絶対参照で書いていますが、
こちらは主義というより好みに近いでしょうけれど、
自分ならこうする、というものです。
こちらではエラーを再現することが出来ませんので、
もし、またうまく行かなかったら、もう少し詳しい状況を教えてください。
念の為ですが、もしも、セルに ######## のように表示されているということでしたらば
それは、セルの幅とフォントサイズを調整すれば正しく表示されます。
◆手順以下
(D3 セルには事前に数式=DATE($C$2,$D$2,11)が設定してある前提です。)
Excel対象ブックを開いておき、当ページを表示
1◆【12日以降の27日間の数式となる文字列を数式設定】
当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意
="=$D$3+"&COLUMN()-4
[Alt]キー を押下げたまま [Tab] キー押下げ → Excelを表示
[数式バー]左にある[名前ボックス]に
E3:AE3
とタイプして[Enter]キー → E3:AE3 を選択状態に
[F2]キー押下げ → E3セルを編集モードに
(E3セルに入力済の数式がある場合はそのまま消去)
[Ctrl]キー を押下げたまま [V] キー押下げ → [数式バー]にコピーした数式を貼付け
貼り付けた数式の前後に空白や改行がないか[数式バー]を確認
[Ctrl]キー を押下げたまま [Enter]キー押下げ → E3:AE3 に数式を確定
2◆【月によっては非表示となるセルに数式となる文字列を数式設定】
[Alt]キー を押下げたまま [Tab] キー押下げ → Webブラウザを表示
当ページから下の数式をコピー ※前後に空白や改行を入れないよう注意
="=IF(DAY(DATE($C$2,$D$2+1,0))<"&COLUMN()-3&","""",$D$3+"&COLUMN()-4&")"
[Alt]キー を押下げたまま [Tab] キー押下げ → Excelを表示
[数式バー]左にある[名前ボックス]に
AF3:AH3
とタイプして[Enter]キー → AF3:AH3 を選択状態に
[F2]キー押下げ → AF3セルを編集モードに
(AF3セルに入力済の数式がある場合はそのまま消去)
[Ctrl]キー を押下げたまま [V] キー押下げ → [数式バー]にコピーした数式を貼付け
貼り付けた数式の前後に空白や改行がないか[数式バー]を確認
[Ctrl]キー を押下げたまま [Enter]キー押下げ → AF3:AH3 に数式を確定
3◆【数式の戻り値文字列を数式に変換】
[数式バー]左にある[名前ボックス]に
E3:AH3
とタイプする → E3:AH3 を選択状態に
[Ctrl]キー + [C] キー押下げ → E3:AH3 をコピーモードに
[Alt]キー を押下げたまま [E] [S] [V] キー押下げ → [値のみ貼付け]のダイアログ選択
[Enter]キー → [値のみ貼付け] を実行
[Ctrl]キー + [H] キー押下げ → 置換ダイアログ表示、E3:AH3 を置換待機状態に
置換ダイアログの [検索する文字列] に、半角で一文字だけ = と入力
置換ダイアログの [置換後の文字列] に、半角で一文字だけ = と入力
置換ダイアログの [すべて置換] ボタンをクリック → 置換による数式化完了
手順以上◆
以上の手順のより
◆◆最終的な数式は
D3 は手を加えず元のまま
=DATE(C2,D2,11)
E3:AE3 は新たに
=$D$3+1、=$D$3+2、=$D$3+3、、、=$D$3+27
AF3:AH3 はそれぞれ
=IF(DAY(DATE($C$2,$D$2+1,0))<29,"",$D$3+28)
=IF(DAY(DATE($C$2,$D$2+1,0))<30,"",$D$3+29)
=IF(DAY(DATE($C$2,$D$2+1,0))<31,"",$D$3+30)
のようになります◆◆
以上です。
遅くなって申し訳ないです。
忙しくて中々先に進められなくてチェックする暇がなかったです。 すいません。
様々な方法を知ることが出来て、すごく勉強になりました。
シンプルなものから、他の事象に対しても有効そうなものまで。
このなかからベストアンサーを選ぶのはすごく迷いましたが、お礼に対してもう一度返信してくれたということ、より細かな手順の提示というところで、こちらの方をベストアンサーとさせていただきます。
他の皆様のやり方もすべて挑戦してみて、無事できました。
本来なら個別でお礼という形を取るべきですが
どれも驚きの連続でしたし、お礼の回答が一辺倒になってしまうと思いましたので
こちらの項目でまとめて皆様に御礼を申し上げます。
回答していただいた方々ありがとうございました。
まだ、いくつか詰まってるところがありますので、また質問することになると思います。
その際はまた機会がございましたらよろしくお願いします。
No.10
- 回答日時:
ご覧のとおり様々な方法があって、If 文というより IF 関数を使う方法、EDATE(恐らく expiration date)関数を使う方法、条件付き書式を使う方法…が出ましたね。
その他に、へそ曲がりな(笑)方法としては、翌月 11 日に達したセルでは「0」を算出し、ゼロについてはセルの書式(表示形式)で非表示にするという手もあります。
E3 =(max($D3:d3)<=date($C2,$D2+1,11)-2)*(d3+1)
あるいは
=(0<d3)*(d3<=date($C2,$D2+1,11)-2)*(d3+1)
※「date($C2,$D2+1,11)」という部分は「edate($D3,1)」と書き換えてもオッケー。
ただし Excel 2003 以前においては、EDATE はアドイン「分析ツール」の関数。
と記入。通常の日付の書式のままだと、ご存じかもしれませんが、「0」は「1900/1/0」といった感じに表示されます。ユーザー定義書式として「[=0]"";d」などを設定すると、ゼロは消えます。
あるいはセルの書式は変更せずに、Excel のオプションの詳細設定で「ゼロ値のセルにゼロを表示する」のチェックを外すということでも可能です。
No.8
- 回答日時:
セル E3 に次の[条件付き書式]を設定
数式が =E3>DATE($C2,$D2+1,0)
フォント色 白
セル E3 に数式 =D3+1 を入力して、此れを右方へズズーッとドラッグ&ペースト
No.6
- 回答日時:
>IF文を使えばいいのか、それとももっと別の関数を使うべきなのかわかりません。
IF関数を使いますが入れ子構造にしないと#VALUEになるセルが発生します。
D3セルは良いとして、E3セルには次の式を使うと良いでしょう。
=IF(ISTEXT(D3),"",IF(AND((YEAR(D3+1)-YEAR($D3))*12+MONTH(D3+1)-MONTH($D3)>0,DAY(D3+1)>10),"",D3+1))
最初のISTEXT(D3)は直前のセル(左側)が文字列のとき#VALUEエラーが起こるので、それを回避するためです。
AND((YEAR(D3+1)-YEAR($D3))*12+MONTH(D3+1)-MONTH($D3)>0,DAY(D3+1)>10)は初日の月数と翌月1日以降の月数を算出して翌月の10日までに該当するか否かを判定するための条件です。
この式には12月11日から1月10日までについても対応しています。
尚、10月分を4行目に設定するときはD4セルに次の式を使うと良いでしょう。
=DATE(YEAR(D3),MONTH(D3)+1,11)
その時、E4の式はE3の式を下方にコピーすればそのまま使えます。
No.5
- 回答日時:
こんにちは!
すでに色々回答は出ていますので、参考程度で・・・
Excel2007以降での方法になりますが、
E3セルに
=IFERROR(IF(D3+1<EDATE($D3,1),D3+1,""),"")
という数式を入れ、AH3セルまでオートフィルでコピーしてみてください。m(_ _)m
No.4
- 回答日時:
こんにちは。
お邪魔します。ついでに全体の数式を軽~いものに直しましょう。
"数式を作る数式"を使うので、手順、確認しながら進めてください。
◆手順以下
E3 に
="=D$3+"&COLUMN()-4
AE3 まで右にオートフィル
AF3 に
="=IF(DAY(DATE($C$2,$D$2+1,0))<"&COLUMN()-3&","""",D$3+"&COLUMN()-4&")"
AH3 まで右にオートフィル
B3:AH3 を選択し、そのまま連続して
コピー
値のみ貼付け
置換機能
検索する文字列 =
置換後の文字列 =
手順以上◆
◆◆最終的な数式は
D3 に
=DATE(C2,D2,11)
E3:AE3 に
=D$3+1、=D$3+2、=D$3+3、、、=D$3+27
AF3:AH3 に
=IF(DAY(DATE($C$2,$D$2+1,0))<29,"",D$3+28)
=IF(DAY(DATE($C$2,$D$2+1,0))<30,"",D$3+29)
=IF(DAY(DATE($C$2,$D$2+1,0))<31,"",D$3+30)
のようにします◆◆
お早い回答ありがとうございます
皆様とはちょっと異なるやり方ということで今試していたのですが、どうも置換機能の場所でエラーを起こしてしまいますね。
このやり方はできれば会得しておきたいのでまた新たに回答いただければと思っております。
No.1
- 回答日時:
>10日以降の日付を表示しない
やり口は様々ありますが割と文字通りに計算してみると
D3に
=IF(DATE($C$2,$D$2,COLUMN(K3))>DATE($C$2,$D$2+1,10),"",DATE($C$2,$D$2,COLUMN(K3)))
と記入、右にコピー。
#実際には
>D3に=DETA(C2,D2,11) E3に=(D3+1)とし、F3・・=(E3+1)
そのやり方で、AE列までのセルは何の支障もなく計算できています。つまりここまでは10日を超えてるか、気にする必要は全然ありません。
実際にはAF列からAH列までの3つのセルだけについて、10日を超えているかどうかを個別にチェックすれば良いだけのお話です。
もっともこの手のご相談では、最初からみんな同じ数式が並んでる方が「気持ちイイ」のでしょうか、前述のようなやり方を好まれるかたがほとんどなんですけどね。
お早い回答ありがとうございます。
回答してくださったかたの方法を今一つずつ試しているところなのでベストアンサーはまだつけられません。
自分はどちらかと言えば、要所要所で複雑であったり詳しく書かれてるほうがいいんですけどね。
なんというか全部コピーだと後々に開いた時に困ったり、他人がみたときにもわかりやすい方がいいですしね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/12/23 14:57
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) エクセルの数式で教えてください。 3 2023/04/17 09:25
- Visual Basic(VBA) マクロで設定時刻の入力がわかりません 2 2022/03/29 02:24
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
食べられるかと思ったけど…ダメでした
「この煮物、だいぶ放置しちゃったけど大丈夫かな…」 「食べ物じゃないけど、なんか食べたらすごく美味しそうな気がする」
-
「黒歴史」教えて下さい
若気のいたりでやってしまったけれど、いまとなっては封印したい… そんなあなたの黒歴史を教えて下さい。
-
エクセルで昨日までの日付データ行を非表示するVBAについて!
Excel(エクセル)
-
【Excel】日付によって、セルの非表示と表示を自動にする方法を教えてください。
Excel(エクセル)
-
エクセルで。
Excel(エクセル)
-
-
4
28日~31日が必要ない所を空白表示にする方法
Excel(エクセル)
-
5
エクセルでカレンダーを作成しているのですが、特定の日付を非表示にするやり方を教えて頂きたいです。 縦
Excel(エクセル)
-
6
Excel関数:本日以降(以前)の日付を色付けまたは強調したい
Excel(エクセル)
-
7
今日の日付が過ぎたらその行を削除したい
Visual Basic(VBA)
-
8
エクセルで特定の数字等を表示させない方法ってあるのでしょうか?
Excel(エクセル)
-
9
エクセルで、日付を入力すると、別のセルに文字を自動的に表示させるようにするには。
Excel(エクセル)
-
10
IF関数などを使って条件に合った「行」を削除するような機能はありますでしょうか?
Excel(エクセル)
-
11
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
12
エクセル・○○(日付)より前の場合は偽、後の場合は真の関数
Access(アクセス)
-
13
未来の日付日欄を無色(空白)で表示させたい
Excel(エクセル)
-
14
基準日以前のデータを範囲を指定して削除するVBA
Excel(エクセル)
-
15
Excelで指定した日付から過去の最も近い日付(指定した日付も含む)を下から検索する方法
Visual Basic(VBA)
-
16
【関数】Falseは表示させないようにするには?
Excel(エクセル)
-
17
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数を教えて下さい
-
文字列1"文字列2"文字列3を文字...
-
Excelで、日付と数量からなるデ...
-
Excelのデータの入力規則の問題...
-
Excelの罫線を消す方法
-
エクセルの計算式を教えてくだ...
-
Excelファイルを開くと私だけVA...
-
Excel スクロールバーの長さが...
-
XMLHTTP60で前日のデータが取れ...
-
【マクロ】複数行並んだデータ...
-
エクセルで、数字ではない値(...
-
エクセルのセンス 参照するシー...
-
ファイルパスについて。
-
エクセルのセル内に分数などの...
-
フォルダの中にファイルがある...
-
excelVBAについて。
-
PC Excel マクロ
-
エクセルで作れる簡単なスケジ...
-
Excelで並べ替えをするとおかし...
-
エクセルシートの作成(関数)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、数字ではない値(...
-
Excel いい方法教えてください。
-
納期順に勝手に並べ替えられる...
-
エクセルで作成した書類の印刷...
-
Excel初心者です、Excelの日付...
-
エクセルで作った表が印刷する...
-
実務の処理について。
-
AM8:30から翌朝8:30まで勤務す...
-
Excelのデータの入力規則の問題...
-
Excelの罫線を消す方法
-
桁をセルで区切って計算をした...
-
スプレッドシート(Excelでも良...
-
VLOOKUP関数で複数条件を設定に...
-
Excel初心者です。 Excelでやり...
-
エクセルでAのセルに「家電」と...
-
ファイルとフォルダの移動につ...
-
XMLHTTP60で前日のデータが取れ...
-
ファイルパスについて。
-
エクセルの数式について教えて...
-
スプレッドシートで適切な条件...
おすすめ情報