• ベストアンサー

どなたか計算式を教えてください。(IF)

1ヶ月分の経費精算が『月初~15日』と『16日~末』の2回あります。 日付の列に月初の日付が入力されたら、右のセルに「10,000円」と返したいのです。 月初としたのは、1日が休日の場合、2日から始まる月もあるためです。 どうぞ、よろしくお願いします。m(_ _)m

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんにちは! 勘違いをしているかもしれませんが・・・ >1ヶ月分の経費精算が『月初~15日』と『16日~末』の2回あります とありますが、月に2回の条件がある!というコトですかね? もしそうであればA1セルからシリアル値が入っているとして、 B1セルに =IF(OR(A1=WORKDAY(EOMONTH(A1,-1),1),A1=WORKDAY(DATE(YEAR(A1),MONTH(A1),15),1)),10000,"") としてオートフィルで下へコピーしてみてください。 これで「月初」と16日以降の最初の営業日に10000が表示されると思います。 単に「月初」だけであれば =IF(A1=WORKDAY(EOMONTH(A1,-1),1),10000,"") でOKだと思います。 ※ 尚、上記関数を使用するにあたり、Excel2003以前のバージョンですと メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 ※ 休日とは「土日」だけにしています。(祝日を考慮する場合は別途表を作成しておけば可能です) 的外れならごめんなさいね。m(_ _)m

decollage
質問者

お礼

説明不足の質問に回答いただきありがとうございました。まだちょっとうまくいっていないのですが、 もう少し整理して教えていただいた式を参考にさせていただきます。ありがとうございました。

その他の回答 (7)

  • LHS07
  • ベストアンサー率22% (510/2221)
回答No.8

b1に =IF(A1="","",10000) a1に何か入力するとb1が10000になります。 b1セルをメニューバー , にすると 10,000 になります。 または =IF(A1="","","10,000円") とすると 10,000円 となります。 または =IF(A1="","","「10,000円」") とすると 「10,000円」 となります。

回答No.7

シートの構造も分からない、では、答えるほうも無限の可能性があってたいへんですし、有益な回答もなかなか出てきづらいですよ。質問の仕方を工夫してみて。話が具体的になってくれば、素晴らしい知識を持った方が大勢いますよ。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

ご質問の意味が、あるセル(A1セル)に月の最初の会社営業日以外の日付(土日を除く日)が入力されたら、その場合だけ10000と表示したいということなら以下のような数式を使用します。 =IF(WORKDAY(DATE(YEAR(A1),MONTH(A1),0),1)=A1,10000,"") もし祭日も除外したいなら、祭日リスト範囲を絶対参照にした数式にしてください。 =IF(WORKDAY(DATE(YEAR(A1),MONTH(A1),0),1,祭日リスト)=A1,10000,"") なおWORKDAY関数はExcel2007以降のバージョンの場合で標準の設定で利用できます。 #Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記しましょう。 また提示した回答がご希望の数式になっていない場合は、月初の日付の定義などを補足説明してください。

decollage
質問者

お礼

説明不足の質問に回答いただきありがとうございました。まだちょっとうまくいっていないのですが、 もう少し整理して教えていただいた式を参考にさせていただきます。ありがとうございました。

noname#204879
noname#204879
回答No.4

土日祝を除く月初日でOKなら、次式を試してみて。 =WORKDAY(EOMONTH(A1,-1),1,PublicHolidayList)

回答No.3

>日付の列に月初の日付が入力されたら、右のセルに「10,000円」と返したいのです。 こう書かれている通りに式を作ってみますと次のようになりますねぇ・・・ 日付の列がA列だとして、「10000」と表示したいセルに次の式を入れます =IF(A2="","",10000) 【月初めの日付が「入力」されたら】と【右のセルに「10000」と返したい】という事だけなら上の式で十分、というか、そういう説明にしか取れませんけど・・・。 

  • DJ-Potato
  • ベストアンサー率36% (692/1917)
回答No.2

複雑な条件式をIF関数に組み込むと、行や列がズレたりエラーが起きたりした時に何が間違っているのか分かりにくくなる可能性があるので、どこかに月初を定義して、月初の場合「月初」と表示されるようにして、そのセルが「月初」の場合「10,000円」と返すように指定すると良いのではないでしょうか。 休日がどのように定義されているかわかりませんが、1日と2日がともに休日で、月初は3日、ということは起こらないのでしょうか。 同様に、16日が休日の場合、17日~末になったり、とか、そういう事態も起こりませんか? そういうことがないのであれば、条件は「日曜日でない1日」か「月曜日の2日」、という設定でよいかと思います。 この程度の条件であれば、IF関数に組み込んでもそんなに複雑にはならないと思います。 =IF(OR(AND(DAY(A1)=1,WEEKDAY(A1,1)<>1),AND(DAY(A1)=2,WEEKDAY(A1,1)=2)),"10,000円","") ちなみにこれだと2012年は1月2日が月初になります。年によっては1月1日も月初になります。

decollage
質問者

お礼

説明不足の質問に回答いただきありがとうございました。まだちょっとうまくいっていないのですが、 もう少し整理して教えていただいた式を参考にさせていただきます。ありがとうございました。

  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

一例です。 A1に日付を入力したとして B1に =IF(DAY(A1)<=15,10000,"") 日付が15日までなら10,000をそれ以外は空白を返します。

関連するQ&A