• ベストアンサー

EXCEL関数である曜日のときに、特定の数字を返す方法

EXCEL関数でわからない点があり質問です。 EXCELにて、ある特定の曜日のときに、 特定の数字を返す、という関数を入れようとしているのですが、 なぜかうまくいきません。 まず、B列に入った日付から曜日番号を返す関数をA列に入れて =WEEKDAY(B4,1) としています。 その次に、A列のセルが1か2か7の時に、K列の数字を返す、 という関数を入力しました。 =IF(OR(A4="1",A4="2",A4="7"),K4,"") 関数的には間違いがないように思うのですが、 どうも、A4="1"といった関数がうまく動いていないようです。 たとえそれが1であっても、TRUEを返してくれません。 WEEKDAYの番号は数字とは違うのでしょうか? どなたか、お分かりになる方、 教えてください!

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

  • ベストアンサー
回答No.1

>WEEKDAYの番号は数字とは違うのでしょうか? 数値です。 >=IF(OR(A4="1",A4="2",A4="7"),K4,"") 文字でなく数値なので、「"」で囲むのはやめましょう。 >=IF(OR(A4=1,A4=2,A4=7),K4,"")

mihomama84
質問者

お礼

丁寧なご回答ありがとうございました。 解説して下さったおかげで、 自分の間違いがどこなのか、 しっかり理解することができました。 本当にありがとうございます。

その他の回答 (2)

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

関数を使うとき、 ・引数 ・関数の(返す)値 が数値か文字列かは基本的なことで、いつも意識すべきことすよ。 WEEKDAy関数の返す値は数値です。 それを文字列で判別していてはだめ。 ーー ただしエクセルでは数字文字は出来るだけ数値化する仕様なので、そこも注意のこと。 また=MID(123,2,2)というのが可能だったりする。 また日付は、値としては、日付シリアル値という数値です。

mihomama84
質問者

お礼

ご回答ありがとうございます。 私の入力した関数では 文字列として判別されていたんですね! 無事解決することができました。 ありがとうございました!

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆ANo.1さんの回答が基本ですが、こんな方法もありますよ =IF(OR(A4={1,2,7}),K4,"")

mihomama84
質問者

お礼

ご回答ありがとうございます! こちらのほうがシンプルでよいですね! 無事に欲しかった値を返す事ができました。 本当にありがとうございます。

関連するQ&A

  • WEEKDAY関数と条件付き書式について

    EXCEL2010使用です。 B列に日付、C列に曜日の表を作成する場合、 WEEKDAY関数を使って 日付に対応する曜日を求めるのに、 例として曜日先頭セルがB4、種類を日曜日スタートに設定する場合、 「C4」セルに=WEEKDAY(B4,1)の関数を挿入、下方向にコピーします。 その後、日曜日の日付と曜日だけフォントの色を変更するため、 条件付き書式の「数式を使用して、書式設定するセルを決定」で、 数式を入力する場合、=WEEKDAY($B4)=1と入力しますが、 =WEEKDAY(B4,1)の「B4」と、=WEEKDAY($B4)=1の「$B4」の意味は分かるのですが、 なぜ「$B4」にしなければいけないのか?(この場合「B4」でも結果は同じです) どなたか教えてください。お願いします。

  • Excelで曜日を出力する方法

    セルA1に3/19と入力すると、3月19日と表示されますよね。 で、セルA1に日付を入力したら、 B1に「日曜日」と表示させる方法がありましたら、教えてください。 Weekday関数を使うと、数字で曜日が、表示されるところまではわかるんですが。 この数字で表示されたものを、「日曜日」といったように、 日本語で表示することは無理でしょうか? IF関数と組み合わせようとしたら、やっぱり、また、1900年におめにかかってしまって(-_-;) ユーザー定義でaaaaで、日曜日と表示させるのも知っているんですが、 式を組み合わせるとむちゃくちゃになってしまって。 よろしくお願いいたします。

  • WEEKDAY関数で7などの数字でなく土などにするには?

    A列に日付、B列にWEEKDAY関数で曜日、C列以降にその日のデータを入れていたブックを今日開いたときエラーが出ました。 ブックは一応自動回復でまた使えるようになりました。 ところがA列の日付がシリアル値、B列の曜日が1から7までの数字になってしまいました。 A列のシリアル値はセルの書式設定を日付にして元に戻ったですが、B列を「3」とかでなく「火」などの表示に戻すにはどうすればいいのでしょう? B列に入れていた関数は      =IF(A119="","w",WEEKDAY(A119)) です。 (119行目の例です。A列未記入行はBにエラー値でなくwが表示されるようにしてあります。)

  • EXCEL2003 日付関数で曜日を入れたい

    宜しくお願いします。EXCEL2003です。 シート1   平成20年4月 シート2   平成20年5月 シート3   平成20年6月 …       … 平成21年3月までのシート1~シート12まであります。 日付関数を使って曜日を入れたい。そして、土曜日・日曜日・休日のところのA列(日)B列(曜日)C列(摘要)の3列を塗りつぶしたいのですが出来ますか。宜しくお願いします。 シート1の A1に4月と入っています。 A2~A32まで1~30まで日にちが入っています。 B2~B32のところに平成20年4月の曜日を入れたい どのようにしたらよいのでしょうか。 シート2以降はシート1の複写です。ですから同じ位置に曜日が入るようになっています。 宜しくお願いします。

  • excel2007 特定の曜日をカウントしたい

    excel2007で、ある期間内における特定の曜日の数を求めるための、 関数もしくは計算式を教えてください ただし、NETWORKDAYS.INTL関数はexcel2010以降に登場した関数のため、 それ以外でお願いします また、初心者なので、 なるべく原理も教えていただければ幸いです ちなみに、A1とB1に開始日と終了日を代入して =A1-B1+1-NETWORKDAYS(A1,B1) の様にやってみましたが、上手くいきませんでした。

  • EXCEL関数について

    EXCEL関数について EXCEL2003を使用しております。 お知恵を拝借願います。 「りんご」、「いちご」、「なし」は「グループ1」 「バナナ」、「メロン」は「グループ2」というように、 果物を20個のグループに分けます。 それぞれのグループの果物は、1個から10数個まで様々です。 Sheet2、A列、A2~A100セルに果物名、 Sheet2、B列、B2~B100セルにグループ番号(1~20)がランダムに入力されています。 ここで、Sheet1のA2セルに「りんご」と入力すると、 Sheet1のB2セルにグループ番号「1」が返せるような関数はありますでしょうか? 「VLOOKUP」で試してみたのですが、数字ではなく果物名から検索したいのと、 数字が重複しているので使えないことに気付きました・・・。 何卒ご教示頂きたく宜しくお願い致します。

  • excel関数について

    excel関数について教えてください。 セルA1が↑のとき、セルA2>=セルA3ならば、"TRUE"、セルA2が↓のとき、セルA2<セルA3ならば、"TRUE" という数式を作りたいのですが、どなたか教えていただけませんでしょうか。 =IF(A1="↑",A2>=A3),IF(A1="↓",A2<A3) と入れてみましたがエラーになり行き詰っています。 よろしくお願いいたします。

  • Excel関数

    A列に日付、B列に曜日、C列に数字が書いてあります。 D列に、当日のC列の数字が、前日から先週の月曜までの最高値を上回っていれば1,そうでなければ0と表示させたいのですが可能でしょうか? Excel関数に強い方いらっしゃいましたら是非お助けください! 宜しくお願いします。

  • Excel関数

    Excel2010を使用しています。 A~E列 及び H~K列の1,000行目くらいまで、1ケタから5ケタの数字を入力しています。 重複した数字がないか確認したいのですが、適した関数はありますか? (重複していた場合、指定したセルに「重複」と出るような関数など) セルは空欄の場合もあります。 ご教示いただければ幸いです。よろしくお願いします。

  • Excel関数について

    Excel関数について Excel2003を使用しております。 B列に日付を入力しており、E列には数字を入力しております。 B列には必ず日付を入力しておりますが、E列には数字を入力していない場合もあり、 日付ごとにE列に入力した数字をカウントしたいのですが、 どのような数式を使用すれば確認出来るでしょうか? 日付ごとの数字の合計ではなく、あくまでもカウントになります。 ご教示頂きたく、何卒宜しくお願い致します。

専門家に質問してみよう