
Excelの数式について教えてください。
セルE4に設定した数式を自動更新する方法を教えてください。
セルA2に基準日:数式「=EOMONTH(TODAY()+1,-MOD(MONTH(TODAY()+1),3)-1)」があります。現在は2022年11月30日と表示されており、自動で3か月毎に更新(例えば次は2023年2月28日、2023年5月31日、2023年8月31日等々)となります。
セルA4にはプルダウンで日付が選択できるように設定しております。
セルC4には「=MAX($A$2,$A$4)」の数式があります。
セルE4には「=IFS(NOT(ISNUMBER(C4)),"",C4<DATE(2023,3,1),DATEVALUE("2022/11/30"),1,DATEVALUE("2023/2/28"))」の数式があり、この数式はセルC4の日付により表示が変わります。
C4が2023年2月28日以前の日付だと「2022年11月30日」と表示
C4が2023年3月1日以降の日付だと「2023年2月28日」と表示されます。
この式のDATE(2023,3,1),DATEVALUE("2022/11/30"),1,DATEVALUE("2023/2/28")は固定式ですが、この固定部分をセルA2の基準日に合わせて3か月毎に更新できる方法を教えてください。
基準日:2023年2月28日の場合は
C4が2023年5月31日以前の日付だと「2023年2月28日」と表示
C4が2023年6月1日以降の日付だと「2023年5月31日」と表示
基準日:2023年5月31日の場合は
C4が2023年8月31日以前の日付だと「2023年5月31日」と表示
C4が2023年9月1日以降の日付だと「2023年8月31日」と表示
等々と変更できる方法を教えてください。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
C4って数値以外が入ることあるんですか?
とりあえずざっと見た感じでつくっただけですが
E4=IF(C4>EOMONTH(A2,3),EOMONTH(A2,3),A2)
ではどうでしょう?
C4の数値判定は入れてません。
No.1
- 回答日時:
こんにちは
私は関数を全然わからないのですが、すでに使われている関数を組み合わせれば出来そうですね
ご質問をよく理解していないかも知れません
セルE4に
=IFS(NOT(ISNUMBER(C4)),"",C4>EOMONTH(A2+1,MOD(MONTH(A2),3)),EOMONTH(A2+1,MOD(MONTH(A2),3)),1,EOMONTH(A2+1,MOD(MONTH(A2),1)-1))
使われている関数を組み合わせているだけなので もっと良い書き方があると思います
ご質問とは関係ない事で恐縮ですが、
私が回答した
https://oshiete.goo.ne.jp/qa/13299658.html
での回答は間違いです 間違いのまま認識されるのは本意ではありませんので こちらに訂正回答させて頂きます
問題は結合セルへのAutoFitが機能しない為です(改行コードは関係ありません)
VBAで処理を行う場合
AutoFitした行で作業セル(単セル)へフォントサイズなど考慮し値を代入して
得られたRowHeightを再設定し作業セルを.Clearするような手順になると思います
参考コード(ご質問表組を対象にしています 複雑な結合セルがある場合、結合セルの検証などを追加、書き直す必要があります)
作業用セルの取得は仮で40行目としていますが一番右迄使われている見出しなどがあれば その行に変更してください
訂正コード
Sub 行調整()
Dim r As Range, workCell As Range
Dim n As Integer, i As Integer, existingWidth As Single
Const C As Integer = 4
Const DefaultRowHeight As Double = 27
Application.ScreenUpdating = False
For Each r In Range("B26:B60") 'MergeArea(1) B~E = C =4
If WorksheetFunction.CountIf(r.Resize(, C), "<>") > 0 Then
'値ありセル
r.Rows.AutoFit
'40行目 最終列取得行
n = Cells(40, Columns.Count).End(xlToLeft).Column + 2
For i = 0 To C - 1
If r.Offset(, i).MergeCells Then
Set workCell = Cells(r.Row, n).Offset(, i)
With workCell
existingWidth = .ColumnWidth
.Column Width = GetMaregeColumnWidth(r.Offset(, i).MergeArea)
.WrapText = True
.Font.Size = r.Offset(, i).MergeArea.Font.Size
.Value = r.Offset(, i).Value
End With
End If
Next
If Not workCell Is Nothing Then
r.RowHeight = r.RowHeight
Cells(r.Row, n).Resize(, C).Clear
Cells(r.Row, n).Resize(, C).ColumnWidth = existingWidth
Set workCell = Nothing
End If
Else
'空白行のみ
r.RowHeight = DefaultRowHeight
End If
Next
Application.ScreenUpdating = True
End Sub
Function GetMaregeColumnWidth(RngMarge As Range) As Long
Dim n As Long, r As Range
For Each r In RngMarge.Columns
n = n + r.ColumnWidth
Next
GetMaregeColumnWidth = n
End Function
参考まで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excelです。 Excelしてたら 点線?みたいのが出て来ました これは何ですか?どうやったら消せ
Excel(エクセル)
-
Excelについて
Excel(エクセル)
-
Excel 計算式を教えて下さい
Excel(エクセル)
-
-
4
Excel 知恵を下さい。 下記表は、例です。本来の表のデータ量は、1000件以上あります… A列:
Excel(エクセル)
-
5
Excel 値を返す数式についてです
Excel(エクセル)
-
6
合計額がゼロになってしまう
Excel(エクセル)
-
7
エクセルデータ。容量を減らすにはどうしたらいい?
Excel(エクセル)
-
8
エクセルの数式で教えてください。
Excel(エクセル)
-
9
何故割り算なのでしょうか?
Excel(エクセル)
-
10
年間仕事用シフトカレンダーに、日勤 夜勤 休み に色分けをした。
Excel(エクセル)
-
11
エクセルで
Excel(エクセル)
-
12
Excelにて、下記のようなデータを月だけ変えて下にドラックしていきたいです。どうすれば良いですか?
Excel(エクセル)
-
13
行と列のウインドウ枠を同時に固定をしたい。
Excel(エクセル)
-
14
Excelで2つの条件のうちどちらかにあてはまるときの数式を教えてください。
Excel(エクセル)
-
15
Excelの関数詳しい方お願いします。
Excel(エクセル)
-
16
エクセルで Aならば1. Bならば2 Cならば3って感じの関数作れないですかね?
Excel(エクセル)
-
17
2から100までの自然数について素数であるか判定したいです。シートのA列には自然数の値、B列には判定
Excel(エクセル)
-
18
Excelで【1-1】【1-2】【1-3】という連番の文字の入力が上手く出来ません。
Excel(エクセル)
-
19
エクセル2019の関数を教えてください。
Excel(エクセル)
-
20
エクセルの参照について教えていただけますでしょうか
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
Excel に貼り付けた図形が、保...
-
5
EXCELで2つの数値のうち大きい...
-
6
エクセルの2ページ目の作り方
-
7
EXCELで特定のセルに表示...
-
8
エクセルのセル内の余白の設定...
-
9
VBAで保存しないで閉じると空の...
-
10
特定セルの内容を更新したら、...
-
11
Excelで隣のセルと同じ内容に列...
-
12
Excelのセルにユーザー名...
-
13
エクセルで作った新しいウイン...
-
14
EXCELで高さ0で隠れた行の素早...
-
15
EXCELで2列を参照し、重複する...
-
16
グラフの横・縦項目が全部表示...
-
17
エクセルのセル内に全角数字を...
-
18
エクセルの数式で教えてください。
-
19
Excelで数値→文字列変換で指数...
-
20
エクセルの散布図のX軸に文字...
おすすめ情報
公式facebook
公式twitter