• ベストアンサー

エクセルでアルファベット混在の日付とtoday関数

日付起算の表記で月がA~Lまでに割り付けてある表記で、例えば2022年1月なら22A????と表記してある文字列を2022年2月と比較したいのでが。 目的はセルの書式設定で、B2のセルの値が、today()関数との比較で今日の月と22A???が違っていたら赤太字等のアラートを出したいのです。 上記の場合なら入力作業を2022年1月以外の場合はB2のセルの 「22A???」が赤太字になるようにしたいのです。 宜しくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (728/1511)
回答No.5

=COUNTIF(B2,TEXT(TODAY(),"Y")&CHAR(MONTH(TODAY())+64)&"*")=0 の方が解りやすかったですかね。 CHARは文字コードを文字にする関数です。 文字コードは、A 65、B 66…なので、 CHAR(月+64)でアルファベットに変換できます。 D2: =TODAY() E2: =MONTH(D2)+64 F2: =TEXT(D2,"Y")&CHAR(E2)&"*" G2: =COUNTIF(B2,F2)=0 を入力してみてて下さい。 D2の日付をいじってみれば、動きが解ります。

akira0723
質問者

お礼

解説まで有難うございます。 解説が有った分、今回のご回答の方が分かる気がしてこちらを試してうまく行くことを確認しましたのでこちらを採用させてもらいます。 CHAR関数は理解できましたが、これ単独で使用するケースは無いと思うので当方には使いこなせそうにありませんが、非常に参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

もう回答は済んでいるのでしょうが、 条件付き書式の問題にして 例データ A1:A9 22Aaa 22Bbbaa 22CAaa 22Aaa 22Baa 22DAaa 22BAaa 22B9Aaa ーーー ホーム 条件付き書式 新しいルール 関数を利用する 関数を =AND(FIND("22B",A2)<>0,FIND("22B",A2)=1) フォントの書式を赤字に設定する 式の意味は、22Bが先頭にある場合、ということです。 結果 22Bbbaa 22Baa 22BAaa 22B9Aaa が赤字になります。 === 上記では、Today()とは関連付けで来てませんが、 人間が、例えば、2022年2月なら、22Bだと翻案して、上記式を設定すればよい。 TODAYから「22B」を割り出す関数も可能だと思うが略。 ーーーー 初め質問文を読んで置く意味が取れなかったが、核心は上記の問題ではないか?

全文を見る
すると、全ての回答が全文表示されます。
  • SI299792
  • ベストアンサー率48% (728/1511)
回答No.3

現在、2022年 2月なので 22B??? 以外なら、赤太字にすればいいのですね。 B2を選択 条件付き書式、新しいルール、 数式を使用して、書式設定するセルを決定 =1-COUNTIF(B2,TEXT(TODAY(),"Y")&CHAR(MONTH(TODAY())+64)&"*") 書式。フォント、赤、太字、OK。OK。

akira0723
質問者

お礼

すみません。 式をコピペしたときに「1-」が抜けていました。 バッチリでした。

akira0723
質問者

補足

早々のご回答ありがとうございます。 当方には式を見ても、どうしてアルファベットがtoday()の月の1~12に置換されているのか理解できないのですが早速試してみました。 結果はどうも当月のみ赤太字になるのですが。 書式設定で「=」ではなく「<>」にする記述すらわかりません。 また、これは3月になれば「22C???」で判定されるのですよね? 式の意味が不明なので来月にならないと当方には確認できないので念のためい確認させてください。 お手数をおかけしますが何卒宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

今日を含む月かどうかを判断し、 含む場合は〇、含まない場合は×を返す関数(後記)を用意し、 C列に配置する。 更に、 セルの文字を赤くするかどうかは、条件付き書式で判断する というアイディアはいかがでしょうか。 以下、標準モジュールに配置するコードです。 Option Explicit Function isMonthHit(YMMoji As String) As String  Dim y As Integer  Dim m As Integer  Dim wkM As String    y = Val(Left(YMMoji, 2)) + 2000  wkM = Mid(YMMoji, 3, 1)    If wkM = "A" Then   m = 1  ElseIf wkM = "B" Then   m = 2  ElseIf wkM = "C" Then   m = 3  ElseIf wkM = "D" Then   m = 4  ElseIf wkM = "E" Then   m = 5  ElseIf wkM = "F" Then   m = 6  ElseIf wkM = "G" Then   m = 7  ElseIf wkM = "H" Then   m = 8  ElseIf wkM = "I" Then   m = 9  ElseIf wkM = "J" Then   m = 10  ElseIf wkM = "K" Then   m = 11  ElseIf wkM = "L" Then   m = 12  End If  If ((Year(Date) = y) And (Month(Date) = m)) Then   isMonthHit = "〇"  Else   isMonthHit = "×"  End If   End Function

akira0723
質問者

お礼

Hohopapa-さん 早々のご回答ありがとうございます。 今回は判定用の列を作るとするとVBAの関係でかなり離れた列にする必要があるので極力当該列(ロットNo)に仕掛けするのが良いので申し訳ありませんが#03さんのご回答を採用させていただきます。 ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#252888
noname#252888
回答No.1

出来ないから回答が付かないのではなくて 何を言っているのか分からないから回答がつかないのだと思います。 始めの1文から疑問を挙げると 「日付起算」⇒ググってみてください。こんな言葉出てきませんから。起算日の事を言っていますか? 「月がA~Lまでに割り付けてある表記」⇒A1~L1セルに月数が書いてあるのですか?それとも見做しているだけで書いてはいないですか? 「例えば2022年1月なら22A????と表記してある文字列」⇒”22A????”これは値ですか?実際に"?"と書いてあるのですか?この文字列はどこのセルに出るのですか?文面上、出てくるセルがB2しかないのですが、そこが全てですか?全然イメージが付かないです。 などなど状況が全然把握できないです。 めんどうだったら画像を張り付けてくれれば伝わりやすいと思います。

akira0723
質問者

お礼

質問が分かりにくくて済みませんでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル日付関数について

     日付関数の初歩的な質問です。  例えばtoday()で、セル書式が日付なら2009/1/4となります。セルの書式を標準にすればシリアル値がでます。そこでyear(today())とし書式が日付なら2009となると思ったのですが、結果は1905/7/1となりました。どういうことなのでしょうか。セル書式を標準にしたら2009となりました。  的はずれの質問かもしれませんが、なぜyear(today())とうつと1905/7/1となるのでしょうか。  

  • today関数と文字を合わせたい

    例えば、TODAY関数を使って「今日は2012/2/20です」 とセルに入れたい場合、 どういう数式を入れればいいでしょう? 「="今日は"&TODAY()&"です"」だと「今日は41325です」になってしまいます。 書式設定で日付にしても、数値が表示されたままです。

  • 日付の関数

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

  • EXCELで現在の日付との差分をとる

    早速ですが、下記についての質問です。 セルA1、A2、A3にそれぞれ2008/1/1、2008/7/1、2009/1/1 があります。 この3つの日付と現在の日付を比較し、過去3ヶ月以内に該当するセルに色をつけたいと思っています。 days360()とtoday()関数を使用し、条件付き書式設定で試みたのですが、うまくいきません。 EXCELは2002です。 どうぞ宜しくお願い致します。

  • Excelについて

    Office365使用 Excelで、セルA1に本日の日付を入れると(今日だと2/29) 2024年2月29日と出るよう、書式設定しています。 B1のセルに「1」と入力すると、A1の日付を用いて 下記のように表記させたいです。 20240229-1 2024年10月10日の場合は、20241010-1 どなたかお詳しい方、ご教授お願い致します。

  • エクセルで日付セルの参照先が空白の場合の書式設定

    エクセル2016です。 例えばシート1のA列に日付を入れる表があって、そのA列のセルを参照してシート2の$B$2に同じ日付が入る表があります。 このA列への日付の入力を忘れがちなのでシート1のA列が空白セルの場合(=シート2のB2セルが1900年1月1日となる)はセルを赤色にしたいのですが。 書式設定で、セルが「1900年1月1日」の時、としてもうまくいかないのですが。 シート2のB2はOFFSET関数でA列の値を引っ張るので、A1=""では書式が設定できませんのでよろしくお願します。

  • Excel の関数で指定条件座標の値を返す方法

    Excel を使い、複数の特定条件を満たした場合のみ、該当するセルの値を返す方法を教えてください。 下記の条件に基づいた処理をExcel関数で行うことはできるのでしょうか? VBAを使わなければ、目的とするデータの取得は無理でしょうか? ********************************************* B3に本日の日付の「月」:「=today()」書式=m"月" C3に本日の日付の「日」:「=today()」書式=d"月" A6~14の列に「月」 B5~AF5の行に「日」 B6~AF17には、ランダムな英数字を記載 【G20のセル】  ・本日の日付「=today()」に合致する座標に入力されている値を表示させる。    検索条件: B5:AF5=$D$3 (日) & A1:A17=$C$3 (月) **********************************************

  • Excel 日付

    エクセルで日付順に並べ替えをしたいのですが、 2012年10月30日 2012年11月4日 2012年1月25日 2012年4月14日 2012年7月20日 の様に、10月、11月が優先されてしまいます。 正しく表示されるには、どうしたら良いでしょうか? 西暦と月を別々のセルに表記しなければならないでしょうか? データは“セルの書式設定”で、“日付”を指定しています。

  • エクセルの日付表記について教えてください。

    エクセルの日付表記について教えてください。 htmlファイルがあり、テーブルタグの中に『2010年01月09日』書かれていたとします。 このhtmlファイルをエクセルで開くと、ほとんどの場合『2010年1月9日』となってしまいます。 『2010年01月09日』とそのまま表記したいのですが、エクセルが開いたときのセルの書式を、日付ではなく標準で開くように指定する方法はあるのでしょうか。バージョンはOFFICE2000です。 よろしくお願いします。

  • EXCEL 関数

    EXCEL2002で、ファイルを開いたときに、実施事項としてファイルを開いた日(本日)が、交付日から10日を超えた場合は、セルCを黄色、交付日から60日をこえた場合はセルを赤色にしたいのです。 戻り日は未入力の状態でです。ファイルを開いたときに〆日が過ぎていることを気づかせたいのです。  A   |B   |C      |D 交付日 |戻り日|赤or黄色  |=TODAY()       セルCに条件付書式で 条件1=AND(D-A>0,D-A>60) 赤 条件2=AND(D-A>10) 黄 ただ上記の書式にするとAが未入力の状態だとセルCが赤になってしまいます。 何かいい方法はありますでしょうか。教えてください。

digitalTVBOXが起動しない
このQ&Aのポイント
  • digitalTVBOXバージョン?(1.01.1002.1)でdigitalTVBOXを何回か再ダウンロードをしてるのですが、「digitalTVBOXを起動出来ません。キャプチャーボードの接続とドライバーのインストールが正しく行われているか確認してください」となります。
  • 説明書の機種とOSが一致したものをダウンロードしないとダメですか?
  • 他に方法がありましたらお願いします。
回答を見る

専門家に質問してみよう