よねさんのWordとExcelの小部屋 なんでも掲示板

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

ツリー一括表示

Nomal 日にちの変更と一緒に月表記を変更するには /朝日山 (23/01/20(Fri) 00:15) #13581
Nomal Re[1]: 日にちの変更と一緒に月表記を変.. /よねさん (23/01/20(Fri) 07:48) #13582
  └Nomal Re[2]: 日にちの変更と一緒に月表記を変.. /朝日山 (23/01/21(Sat) 00:11) #13583
    └Nomal Re[3]: 日にちの変更と一緒に月表記を変.. /よねさん (23/01/21(Sat) 07:56) #13584
      └Nomal Re[4]: 日にちの変更と一緒に月表記を変.. /朝日山 (23/01/21(Sat) 23:45) #13585
        └Nomal Re[5]: 日にちの変更と一緒に月表記を変.. /よねさん (23/01/23(Mon) 07:34) #13586
          └Nomal Re[6]: 日にちの変更と一緒に月表記を変.. /朝日山 (23/01/25(Wed) 22:32) #13587


親記事 / ▼[ 13582 ]
■13581 / 親階層)  日にちの変更と一緒に月表記を変更するには
□投稿者/ 朝日山 -(2023/01/20(Fri) 00:15:52)
    こんばんは。いつもお世話になっております。
    会社Aの締め日が15日として、エクセルファイルのセルA1に

    1月16日〜2月15日の間→1
    2月16日〜3月15日の間→2

    と自動的に表記されるようにしたいのですが
    どういう関数を入れればうまく表記されるでしょうか?
    よろしくお願いいたします。
[ □ Tree ] 返信/引用返信 削除キー/

▲[ 13581 ] / ▼[ 13583 ]
■13582 / 1階層)  Re[1]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ よねさん -(2023/01/20(Fri) 07:48:12)
    B1セルから下方向に日付が入力されているとします。
    また、その日付は 2023/1/16〜2024/1/15 といった1年の日付が入力されるものとします。
    A1の数式は
    =IF(YEAR($B$1)+1=YEAR(B1),12,
    (IF(DAY(B1)>=16,MONTH(B1),MONTH(B1)-1)))
    といった感じでいかがでしょうか?

[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13582 ] / ▼[ 13584 ]
■13583 / 2階層)  Re[2]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ 朝日山 -(2023/01/21(Sat) 00:11:53)
    よねさん様

    説明不足で申し訳ありません。
    日付入力なしで、PCのカレンダー内日付?と連動して
    どうにか最初の記事のような結果が出せないかと思い質問させて頂きました。
    (会社で日付入力すらも面倒がって適当に締め月を入力してくる人が多いので)
[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13583 ] / ▼[ 13585 ]
■13584 / 3階層)  Re[3]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ よねさん -(2023/01/21(Sat) 07:56:38)
    2023/01/21(Sat) 09:05:52 編集(投稿者)
    数式は
    =IF((TEXT(TODAY(),"mdd"))*1<116,12,
    (IF(DAY(TODAY())>=16,MONTH(TODAY()),MONTH(TODAY())-1)))
    こんな感じでいかがでしょうか?
    
    > (会社で日付入力すらも面倒がって適当に締め月を入力してくる人が多いので)
    入力の間違いがあるとき、日付が無いとチェックできないのでは?
    といらぬ心配をしてしまいそうです。

[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13584 ] / ▼[ 13586 ]
■13585 / 4階層)  Re[4]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ 朝日山 -(2023/01/21(Sat) 23:45:32)
    よねさん様

    ありがとうございます。これで何とかなると思います!あと、
    >> (会社で日付入力すらも面倒がって適当に締め月を入力してくる人が多いので)
    >入力の間違いがあるとき、日付が無いとチェックできないのでは?
    >といらぬ心配をしてしまいそうです。
    これは詳しくは言いにくいのですが大丈夫です。すみませんでした。
[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13585 ] / ▼[ 13587 ]
■13586 / 5階層)  Re[5]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ よねさん -(2023/01/23(Mon) 07:34:15)
    申し訳ありません、何かおかしな感じがしていたのですが、
    TODAY() を使っているので、ワークシートを開くたびにすべての計算が再計算されます。
    よって、数式で計算したら、値の貼り付けなどをして数式を値に変更する必要があります。
    やっぱり、どこかに入力日でも計算のもとになる日付を入れておき、
    その日付で計算することをお勧めします。
    数式は ↓のXXXを入力した日付のセルに変更します。
    =IF((TEXT(XXX,"mdd"))*1<116,12,
    (IF(DAY(XXX)>=16,MONTH(XXX),MONTH(XXX)-1)))
    
    
    どうしてもということでしたら、VBAで例えばB2:B15セルが変更されたら、
    その横のA列のセルに計算結果を返す・・・といったものを作成はできます。
    しかし、B2:B15セルで何らかの修正を行うとその時の計算結果に書き換えられます。
    実用上は非常にあぶないので、おすすめはできません。
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim m As Integer
        If Intersect(Target, Range("B2:B15")) Is Nothing Then Exit Sub
        
        If Month(Date) = 1 And Day(Date) <= 15 Then
            m = 12
        ElseIf Day(Date) >= 16 Then
            m = Month(Date)
        Else
            m = Month(Date) - 1
        End If
        
        Target.Offset(0, -1).Value = m
    End Sub
    

[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/

▲[ 13586 ] / 返信無し
■13587 / 6階層)  Re[6]: 日にちの変更と一緒に月表記を変更するには
□投稿者/ 朝日山 -(2023/01/25(Wed) 22:32:14)
    よねさん様

    遅れてすみません。
    上手くいきそうでしたが、やはりだめなんですね…
    上記の
    =IF((TEXT(XXX,"mdd"))*1<116,12,
    (IF(DAY(XXX)>=16,MONTH(XXX),MONTH(XXX)-1)))
    で何とかする事にします。
    丁寧なご回答をありがとうございました!
[ 親 13581 / □ Tree ] 返信/引用返信 削除キー/


Pass/

HOME HELP 新規作成 新着記事 ツリー表示 トピック表示 検索 過去ログ

- Child Tree -