エクセル数式について教えてください。
数式「=REPT("期日は本日",ISNUMBER(FIND(JIS(TEXT(TODAY(),"m/d"))&"まで",CA31617)))」があります。
この数式はセル「CA31617」に本日の日付「8/31」が表示された時に
数式のセルに「期日は本日」と表示されます。
本日の日付より
セル「CA31617」に休日を除いた3日後の日付「9/5」
セル「CA31617」に休日を除いた2日後の日付「9/4」
セル「CA31617」に休日を除いた1日後の日付「9/1」
の場合に数式を設定しているセルに「期日が近いです」
と表示出来る方法を教えてください。
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
No.4です。
前回回答の数式について、補足説明します。
ご質問者の説明からTODAY()および「CA31617」が土日祝日であることはないという前提で数式を作成しています。
このため、万一、TODAY()および「CA31617」が土日祝日であった場合、例えば「CA31617」に、「9/3まで」と入力されていて、TODAY()が本日(2023/9/1)だったら、土日祝日の日数は無視されるので、「期日は本日」が表示されます。
また、万一、「CA31617」が「9/4まで」と入力されていて、2023/9/2(土)に休日出勤して、当該EXCELを開くと、期限について表示されるセルに「期日は本日」が表示されます。
これは、土日祝日は日数に含めないという計算方法のためです。
つまり、期日については、日付が一致しているかではなく、営業日数が本日を含めて何日あるかで判断する数式になっているということです。
No.4
- 回答日時:
>セル「CA31617」に休日を除いた3日後の日付「9/5」
>セル「CA31617」に休日を除いた2日後の日付「9/4」
>セル「CA31617」に休日を除いた1日後の日付「9/1」
>の場合に数式を設定しているセルに「期日が近いです」と表示出来る方法
とのことですが、そもそも「CA31617」には「○月○日まで」の情報しかないとすると越年のプロジェクトに対応できないのではないですか?
例えば、12月末に「CA31617」が「1月4日まで」となっていたら、「2023年1月4日」なのか「2024年1月4日」なのか判別する手段がないので、「2024年1月4日」と見做して「期日が近いです」と表示するのか、期日を大幅に経過しているので何等かのアラートを出すべきなのか判断できないことになりませんか?
「CA31617」は人手で入力しているようなので、入力ミスも発生すると思います。何故年号を省略して入力しているのか判りません。
仮に本年11月1日に①「1月15日まで」と入力された場合と②「2023/1/15まで」と入力された場合を考えると、②はもしかすると「2023/11/15」または「2024/1/15」の誤りなのではないかと気づく余地がありますが、①の場合、年号がないので間違いを疑うこともできません。
「CA31617」はNo.1さんも指摘しておられますが、「2023/8/31」のように入力することにして、表示形式を「m/d"まで」としておけば「CA31617」の中身はシリアル値です。その上で、「期日は本日」と表示したいセルに、
=IFERROR(CHOOSE(NETWORKDAYS(TODAY(),CA31617,祝日),"期日は本日","期日が近い","期日が近い","期日が近い"),"")
という数式を入れればご質問者のご希望は解決することになります。
これを「CA31617」が「8/31まで」と入力されているとすると、同じことをするのに、
=IFERROR(CHOOSE(NETWORKDAYS(TODAY(),EDATE(SUBSTITUTE(CA31617,"まで","")*1,(TODAY()>SUBSTITUTE(CA31617,"まで","")*1)*12),祝日),"期日は本日","期日が近い","期日が近い","期日が近い"),"")
という長い数式になってしまいます。
※上記数式中の「祝日」は「祝日」と名前を付けた範囲に土日以外の祝日一覧があるものとして数式を作成しています。
余計なお世話ですが、ご質問者はやや複雑なEXCELのシステムを作成していて、数式やVBAで疑問が湧く都度、このサイトでご質問されているのではないかと推測します。
その時点で最適な回答であっても、その後、「もっとこうしたい」というニーズが発生したとき、以前の回答をそのまま使い続けることがよいのかどうかという疑問が湧きます。
今回も、No.1さんが、REPT関数を使っている意図はなんですか?TEXT関数ではダメですか?という疑問を述べておられます。
また、一つのEXCELによるシステムの部分部分を異なる回答者による回答を繋ぎ合わせて作成すると、ご質問者のEXCELのスキルレベルが、
>以前質問をさせて頂いた時に教えて頂いた数式ですので私は判断がつきません。
というレベルだとすると、それぞれの最適解を求めた結果が全体最適にはならないという「合成の誤謬」に陥る懸念もあるので心配です。
No.2
- 回答日時:
ワークシート関数の組み合わせで実現するには複雑すぎて無謀だと思います。
ユーザー定義関数を使う例です。
手順
1)ブックを開いて[Alt]+[F11]
2)[挿入]→[標準モジュール]
3)右側のエディタエリアに下記コードを貼り付け
Function kijitu(kDay As String) As String
Dim xMon As Integer
Dim xDay As Integer
kijitu = ""
If Right(kDay, 2) = "まで" Then
kDay = StrConv(Left(kDay, Len(kDay) - 2), vbNarrow)
Else
MsgBox ("「X月X日まで」の様式ではありません")
Exit Function
End If
xMon = Val(Left(kDay, InStr(kDay, "/") - 1))
xDay = Val(Right(kDay, Len(kDay) - InStr(kDay, "/")))
If Date = DateSerial(Year(Now), xMon, xDay) Then
kijitu = "期日は本日"
Exit Function
End If
If WorksheetFunction.WorkDay(Date, 4) > DateSerial(Year(Now), xMon, xDay) Then
kijitu = "期日が近いです"
Exit Function
End If
End Function
これでkijitu関数が使えるようになります。
どこかのセルに =kijitu(CA31617) を入れてみてください。
ただし、祝祭日は
> 「休日」のセルB1:M135
の様式が分からないので対応していません。
上記コード中
If WorksheetFunction.WorkDay(Date, 4,XXXX)
のXXXX部分に工夫すれば、可能かもしれません。
No.1
- 回答日時:
いくつか整理しなければならない事柄があります。
> 本日の日付「8/31」が表示された時に数式のセルに「期日は本日」と表示されます。
とありますが、表示さません。セル「CA31617」に「8/31まで」と表示されたときに「期日は本日」と表示されます。
> 休日を除いた
とありますが、休日の内容を示してください。
例えば、今年の9月22日の「休日を除いた3日後」は何月何日ですか?
同じく9月9日の休日を除いた1日後の日付は何月何日ですか?
REPT関数を使っている意図はなんですか?
TEXT関数ではダメですか?
セル「CA31617」に入っている日付が全角でなければなりませんか?
たとえば値を2023/08/31として、書式設定で m/d"まで" などとしてはいけませんか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 1 2021/11/25 16:34
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/28 08:59
- 会計ソフト・業務用ソフト エクセルについて教えてください。 1 2021/12/03 10:08
- Excel(エクセル) エクセルの数式について教えてください。 1 2023/03/21 09:46
- Excel(エクセル) エクセルの数式で教えてください。 4 2023/06/27 09:56
- Excel(エクセル) 【Excel質問】 「本日の日付」から指定条件を満たす営業日経過後の日数を表示させる関数式 3 2022/06/06 23:28
- Excel(エクセル) ある日付から3年以内であれば【〇】を自動的に表示させる 4 2021/12/09 16:41
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/12/22 17:29
- Excel(エクセル) エクセルの数式で教えてください。 5 2023/10/17 18:01
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
[Excel] 2つの表のセル同士の突合方法について質問です。 添付の表で、 {=AND(EXACT
Excel(エクセル)
-
[Excel] 以下のような、行がズレている2つの表を関数を使って同値チェックを行いたいです。 欲し
Excel(エクセル)
-
エクセルで縦に並んだデータを5行毎に横に並べたいです
Excel(エクセル)
-
-
4
「ChatGPT-3.5」の回答ですが
Excel(エクセル)
-
5
対応するExcelの計算式はありますか?
Excel(エクセル)
-
6
エクセルの計算式で教えてほしいことがあります 5000+1500✖️1.1✖️4 その後100のくら
Excel(エクセル)
-
7
エクセルの数式で教えてください。
Excel(エクセル)
-
8
スプレッドシートでフィルターが途中までしかかかりません。 設定をすると1番下の「1007」のセルまで
Excel(エクセル)
-
9
エクセルについて
Excel(エクセル)
-
10
2つのシートを連動させたいです
Excel(エクセル)
-
11
Excel関数について
Excel(エクセル)
-
12
エクセルの数式で教えてください。
Excel(エクセル)
-
13
Excelで連勤の氏名を抽出する
Excel(エクセル)
-
14
エクセルの計算式について質問
Excel(エクセル)
-
15
エクセルの関数について
Excel(エクセル)
-
16
仕事で使う数式を自分で作成できず、教えて頂けるとありがたいです。 A B C D ①1 ②2 ● 1
Excel(エクセル)
-
17
エクセル2016でfilter関数がないので、、抜き出す関数をおしえてください。
Excel(エクセル)
-
18
[大至急!]ExcelSheetFreeの使い方がわかりません
Excel(エクセル)
-
19
手書き日報にエクセルのデータを重ねて印刷したい
Excel(エクセル)
-
20
excelの数字がE+になってしまいます。 数値に変えればセルでの見え方は治ることはわかるのですが、
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
【エクセル】IF関数 Aまたは...
-
セルに特定の色が付いていたら...
-
エクセル オートフィルタで絞...
-
セルをクリック⇒そのセルに入力...
-
excelのCOUNTIF関数で、『範囲=...
-
エクセルの一つのセルに複数の...
-
枠に収まらない文字を非表示に...
-
Excelで数式内の文字色を一部だ...
-
【Excel】 セルの色での判断は...
-
エクセルのセルの枠を超えて文...
-
EXCEL VBA セルに既に入...
-
(Excel)数字記入セルの数値の後...
-
【マクロ】ボタンを押すごとに...
-
EXCELで優先順位をつけて表示
-
複数のセルのいずれかに数字が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
貼り付けで複数セルに貼り付けたい
-
対象セル内(複数)が埋まった...
-
Excelで数式内の文字色を一部だ...
-
セルをクリック⇒そのセルに入力...
-
Excelでのコメント表示位置
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
EXCEL VBA セルに既に入...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
エクセルの一つのセルに複数の...
-
【Excel】 セルの色での判断は...
-
Excel2003 の『コメント』の編...
-
エクセル “13ヶ月”を“1年1ヶ月...
-
複数のセルのいずれかに数字が...
-
枠に収まらない文字を非表示に...
-
excelの特定のセルの隣のセル指...
おすすめ情報
回答ありがとうございます。
申し訳ありませんでした。
セル「CA31617」に「8/31まで」と表示されたときに「期日は本日」と表示されます。
です。
今年の9月22日の「休日を除いた3日後」は9月26日となります(9月22日当日も含めての3日後の計算になります。)
又、基本は、「WORKDAY」ですが、その他の休日として、同じブックのシート名「休日」のセルB1:M135には「日・土・祭日」を除いた自分で決めた休日を設定しております。
REPT関数を使っている意図はなんですか?
TEXT関数ではダメですか?
の件ですが、以前質問をさせて頂いた時に教えて頂いた数式ですので
私は判断がつきません。申し訳ありません。
セル「CA31617」に入っている日付が全角でなければなりませんか?
たとえば値を2023/08/31として、書式設定で m/d"まで" などとしてはいけませんか?
の件ですが、私以外の者が入力しており、常に大文字入力にしておりますので「JIS」を設定しております。
解決方法をよろしくお願いします。