• ベストアンサー

日付関数について教えてください

エクセル関数で困っています セルAV23=IF(AW23="","",MID(AW23,5,2)) このセルにAW23セルの日付より3か月後を「00」表示しています セルCX23=IF(AV23="MONTH(NOW())-1","1","") としましたが意図する表示ができません AV23セルに当月より-1の月の場合”1” それ以外の月は””(空白) としたいのですがうまくいきません ご教授よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.13

質問者と回答者のコミュニケーションにズレがあり混乱しているようです。 回答No.8への補足に以下のような記述があり、これを元にすれば簡単に解決できるでしょう。 ----------ここから---------- AU23:(20180705)8桁のテキストです AW23: AU23の3カ月後の末日を表示(関数) AV23: AW23の月を2桁表示(関数) CX23 : AV23またはAW23の月と当月が同じ場合に(1)を表示     それ以外は(空白) (年は関係ありません) ----------ここまで---------- AW23とAV23は文字列のようですからIF関数の論理式を文字列同士の比較または数値同士の比較にすれば良いでしょう。 AV23またはAW23の何方と現在の月を比較するかも統一することが望ましいことです。AV23は他のセルで参照していなければ無駄な数式を設定していますのでAW23の月と現在の月を比較する方が合理的です。 CX23の数式は下記で良いと思います。 =IF(MID(AW23,5,2)*1=MONTH(NOW()),1,"") MID(AW23,5,2)で月数の2桁を文字列として切り出しています。 MONTH関数で求められる値は数値なのでAW23から切り出された2桁の数字の文字列を数値化しないと正しい比較になりません。 数字だけの文字列を数値化するにはVALUE関数を使いますが他に1を乗ずる方法や0を加算する方法もあります。 尚、AW23に設定されている数式は変更できないものでしょうから計算結果をそのまま使えば問題ないでしょう。

100POINT
質問者

お礼

わけのわからない質問にご親切にご回答ありがとうございました。

その他の回答 (12)

  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.2

関数の意味はそのまま検索すればわかるんで、検索しましょう。 検索しづらい間違いがあったので、説明しておきます。 Excelで、"文字列" このようにダブルクォートで挟まれたものは文字列として扱われます。 文字列はただ表示するためだけのもので、意味はありません。 ですので、関数をダブルクォートで挟んでしまうのはおかしいです。 質問に不足していることは、式に使われているセル全てに入力されている具体的な値や式。全て必要です。一つ一つ確認して補足しましょう。 他に調べづらいところで気がついたところ >当月より-1の月の場合 MONTH(NOW())が今月だから、-1で先月とでも思ったのかもしれませんが、 今月の取りうる値は1~12 マイナス1なら0~11 0月なんてないですね。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>セルAV23=IF(AW23="","",MID(AW23,5,2)) >このセルにAW23セルの日付より3か月後を「00」表示しています AV23の値は数字2つの文字列になりますがそれで良いのですか? >セルCX23=IF(AV23="MONTH(NOW())-1","1","") >としましたが意図する表示ができません CX23にはどのような値を求めていますか? 「"MONTH(NOW())-1"」は計算式ではなく文字列なので前述の数式で求めているAV23の2桁の数字(文字列)とは絶対に一致しませんのでCX23の値は常に""です。 質問の文言からあなたの考えていることが読み取れません。

関連するQ&A

  • IF条件設定がうまくいきません

    下記関数で日付を表示させています (1)から(3)までは問題なく現在使用していますが 今回の(4)番のところの関数がうまくいきません ご教授いただけますと助かります、よろしくお願い致します 1.AZ4に年月日「20181001」と任意で入力 2.セルBB4は「AZ4」から条件付き月末日を表示 =IF(AZ4="","",VALUE(TEXT(EOMONTH(TEXT(AZ4,"0-00-00"),IF(RIGHT(AZ4,2)-16<0,2,3)),"yyyymmdd"))) 3.セルBA4は下記関数でBB4のデータから月を2桁で抽出表示 =IF(BB4="","",MID(BB4,5,2)) 4.セルAY4に「BA4」で得た2桁の月と現在の当月が一致した場合「●」を表示し条件以外は空白とする =IF(BA4="","",IF(MID(BA4,5,2)),"","",●)  ------ダメです =IF(BA4=0,"",IF((MID(BA4,5,2))=MONTH(TODAY()),"●","")) ------ダメです =IF(BA4=0,"",IF(BA4=MONTH(TODAY()),"●","")) ------ダメです 以上よろしくお願いいたします。

  • EXCEL IF関数での日付の認識について

    よろしくお願いいたします。    A         B 1 2006/07/30    OK 2 2006/8/8      A列の日付が2006/7/31以前だったらB列にOK表示、 2006/8/1以降であったらB列に空白””というIF関数を使った数式をお教えください。 MONTH を使ったりしたのですが、年度単位(4月から翌年3月)の対象のため「MONTH(A1)<=7」と指定すると、2007/3/31も対象になってしまいました。

  • IF関数で「日付~日付」と表示させたい

    月2回(原則7日と22日)、給与があります。 給与日が7日(週末、祝日がかぶるとその前日になる)の場合、 その支払対象期間は先月の16日~月末までです。 (例:給与日が5/7/2012の場合、その支払対象期間は4/16/2012-4/30/2012) 給与日が22日(週末、祝日がかぶるとその前日になる)の場合、 その支払対象期間は当月1日~15日までです。 (例:給与日が5/22/2012の場合、その支払対象期間は5/1/2012-5/15/2012) そこで、例えば 給与日のセルに5/7/2012(週末にかぶる場合は前日)と入力すると 次のセルに自動で(4/16/2012-4/30/2012)と表示され、 給与日のセルに5/22/2012(週末にかぶる場合は前日)と入力すると 次のセルに自動で(5/1/2012-5/15/2012)と表示されるようにしたいです。 そこで、IF関数を使い、(I1のセルに給与日(5/7/2012)が入力されているとします) 論理式:   DAY(I1)<15 真の場合:  MONTH(I1)-1&"/16/2012-"&DATE(YEAR(I1),MONTH(I1),1)-1 偽の場合:  MONTH(I1)&"/1/2012-"&MONTH(I1)&"/15/2012" と入力したところ、 偽の場合はよいのですが、真の場合には 4/16/2012-41029 と月末の日付がシリアル値で返ってきてしまいます。 どうしたら、41029が日付表示になってくれるのでしょうか・・。 宜しくお願いいたします。

  • 日付を表示

    H3に日付を入力してます。 B6にこの関数を入力してます。 =IF(DATE(YEAR($H$3),MONTH($H$3),1)*DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),DATE(YEAR($H$3),MONTH($H$3),-5+ROW()),"") これをB6~↓にコピペしてます。 なんだか違う気もしますが、無事に表示されてます。 やりたい事は、月によって日数が変わるとき例えば 29日や31日など この時現在は空いたセルによく月の1日や2日が表示されるのを空白にしたいのです。 後上記の関数以外の用方法がありますか! ちなみにC列には、WEEKDAY関数で曜日を表示させてます。 おねがいします。

  • IF関数のネスト

    IF関数のネストについての質問です。 例えば、D1のセルに日付が入力してあり、 A4のセルの日付の月がD1の月と同じならば、 「今月」違うなら「エラー」と表示させたいのですが、 数式は解るのです。↓ =IF(MONTH($D$1)=MONTH(A4),"今月","エラー") ですが入力のしかたが解らないのです。 まず、fxの関数の挿入からIFを選択、論理式の部分に、 fxの左にある下矢印からMONTHを選択、 シリアル値はD1を絶対参照。 このあとがどうしていいのか解らないのです。 どなたか教えてください。 宜しくお願いします。

  • 日付が自動的に変わる関数は?

    関数なんて自分で考えて作るものなのでしょうか? 元からある「式」をそのまま取り出してポンと置けば済むのだとばかり、思っていました。 それほどの初心者です。 前置きが長くてすみません。 日付に関する関数について、どうしてもわからない事があって書き込みをしました。 ここに二つのセルがあります。 左のセルには直接入力で日付を入れていって、右のセルには、左のセルの日付が1日から10日だったら自動的にその月の15日と表示するように、同様に11日から20日だったら25日と、21日から末日だったら、翌5日と、表示したいのですが、どうすればよいのでしょう?(ちなみに日付の表示は「●/●」となるように。) IFやDAYを駆使したつもりですが、どうもうまくいきません。 よろしくおねがいします。

  • Excel2007 日付関数について教えて下さい。

    A1に例えば「2012/5/22」と入力すると B2に翌々月10日の日付を入力するため 関数「=DATE(YEAR(A1),MONTH(A1)+2,10)」 と関数を入れました。 A1に日付が入れば翌々月10日の日付を返してくれるのですが A1が空白だと「1900/3/10」の値を返してきます。 日付が入っているとややこしいので消すもしくは日付じゃない値を返すことは出来ないでしょうか よろしくお願いします。

  • 日付の関数

    エクセルの資料で=TODAY()(今日日付が入るように設定してあるセルがあります。・・でその下のセルには今日の日付の月の末日が入るようにしたいのですが(例えば セルA1に2004年1月14日 セル2に2004年1月31日と表示させたい)どのような関数を使えばいいですか?宜しくお願いします。

  • 日付を含む関数について。

    エクセル2003での質問です。 ある列のセル(A1とします)のセルに日付が書き込まれた時だけ、対応する列のセル(B1とします)に決まった文字(ここでは"済")が入るようにしたいと思いIF関数を使って組み立てたのですが、日付の入れ方が解らず上手く行きません。 =IF(A1="日付","済","") ←B1に書き込んでます。 と式を立てていますが、この・日付・の部分の入れ方を教えて頂けないでしょうか? また、勉強の為他の考え方も有ればお教え下さい。 宜しく御願いします。

  • If関数に2つ条件をつける

    If関数を使って日付の月と翌月を記載するという関数を作ったのですが、 これにプラス4日締めの条件をつけたいのです。 日付が4日以降の場合は翌月と翌々月にするという関数はどのように作るのでしょうか。 =(MONTH(A1)&","&IF(MONTH(A1)+1<13,MONTH(A1)+1,MONTH(A1)-11))

専門家に質問してみよう