- ベストアンサー
エクセルの関数式です
エクセルの条件式についてです (IF文) 例えば A列 B列 C列 2008/2/1 500 加藤 2008/3/10 200 鈴木 2008/3/25 100 加藤 2008/4/13 800 佐藤 こんな感じで元データがあるとして、 加藤 鈴木 佐藤 ~2月末 ~3月末 ~4月末 ~2月末 ~3月末 ~4月末 ~3月末 ~4月末 500 200 100 800 こんな感じで別表を作成したいのですが、 IF(C1="加藤",IF(A1<2008/3/1,B1,""),"") 上記の感じで式を入力しても反映してこないんですが、なんででしょう? ちなみに、元データの 日付、金額、氏名 は別表からの関数式で飛ばしています。 教えてくださーい! いろんなパターンのIF文でやってみたんですが・・・ 作成したい表の方が、ずれてしまいますので、おかしいですが・・・
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
そのまま右にコピーして DATEVALUE("2008/3/1")を DATEVALUE("2008/4/1")に変更して使用すると ~3月末は A1<DATEVALUE("2008/4/1") 2008/4/1より小さいシリアル値ととなり2月も3月も含まれてしまいます。 ANo.2さんの式、お借りします。 =IF(C1="加藤",IF(AND(A1>=DATEVALUE("2008/3/1"),A1<=DATEVALUE("2008/4/1")),B1,""),"") AND関数で2008/3/1以上、2008/4/1以下とするといいですよ
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
ご提示の数式を=IF(C1="加藤",IF(A1<"2008/3/1"*1,B1,""),"")とすれば数式としては成立します。 しかし、別表の作成(担当者別の2~4月の集計)には何となく違う様な気がします。 私見ですので解釈が相違していましたら読み捨て下さい。 ■別表(仮にSheet2) A B C D 1 2月 3月 4月 (表示形式を0"月") 2 加藤 500 100 0 3 鈴木 0 200 0 4 佐藤 0 0 800 ■集計方法 A2に=SUMPRODUCT((MONTH(Sheet1!$A$1:$A$100)=B$1)*(Sheet1!$C$1:$C$100=$A2)*(Sheet1!$B$1:$B$100))として縦横にコピー 元データ範囲(sheet1)を仮に100行としています。
お礼
ありがとうございます! みなさん ほんとにご親切ですね! 違う意味でうれしくなりました。 ありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
=IF(C1="加藤",IF(A1<2008/3/1,B1,""),"")では、2008/3/1は2008割る3割る1となってしまいます。 =IF(C1="加藤",IF(A1<DATEVALUE("2008/3/1"),B1,""),"") のようにして、2008/3/1をシリアル値にかえてみてください。
お礼
ありがとうございます! みなさん ほんとにご親切ですね! 違う意味でうれしくなりました。 ありがとうございました。
- temjinzaki
- ベストアンサー率25% (1/4)
IF(A1<2008/3/1,B1,"")の部分でセルA1がシリアル値になってませんか? セルA1のシリアル値を日付にするか、条件に日付をシリアル値で設定してみてください。
お礼
ありがとうございます! みなさん ほんとにご親切ですね! 違う意味でうれしくなりました。 ありがとうございました。
お礼
ありがとうございます! みなさん ほんとにご親切ですね! 違う意味でうれしくなりました。 ありがとうございました。 早速試してみました。 ばっちりです!!!!! ありがとうございます。