- ベストアンサー
エクセル 曜日を平日と週末に分けたいがエラーが
似たような質問と回答をさがしやってみましたがエラーになります。 よろしくご指導下さい。 A B C(年)D(月)E(日)F(曜日)G(平日1週末2) 1 Mon 2007 10 1 Mon 1 2 Tue 2007 10 2 Tue 1 ・ ・ ・ 2007 10 7 Sun 2 7 Sun =VLOOKUP(G1,$A$1:$B$8,2,FALSE) Gを求めるのにこのような式にしましたが Fに曜日を求める =DATE(C1,D1,E1)を入れているためかエラーが出てしまいます。平日と週末を分けるのはこのやり方でいいでしょうか? ◆最終的にやりたいことは C D E F G H I (年)(月)(日)(曜日)(平日1週末2) 2007 10 1 Mon 1 東京 12,000 2007 10 2 Tue 1 東京 8,000 2007 10 7 Sun 2 大阪 22,000 =SUMPRODUCT(($G$1:$G$6=1)*($H$1:$H$6="東京")*($I$1:$I$6)) のように、平日の東京の売上の合計を求めるようなことです。 質問が2つになりわかりにくい説明ですが、 できるだけシンプルないい方法があれば教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一案ですが、次の方法が如何でしょうか。 (1)平日と週末の設定は、WEEKDAY関数を使用する。 =WEEKDAY(DATE(YEAR($C$1:$C$10),MONTH($D$1:$D$100),DAY($E$1:$E$100)),1)<=5)⇒平日、以外は週末 (2)現在の表から平日・東京の合計 =SUMPRODUCT((WEEKDAY(DATE(YEAR($C$1:$C$10),MONTH($D$1:$D$10),DAY($E$1:$E$10)),1)<=5)*($H$1:$H$10="東京")*($I$1:$I$10)) (3)仮に表が年月日がA列、行き先がB列、金額がC列で整理できた場合 =SUMPRODUCT((WEEKDAY($A$1:$A$10),1)<=5)*($B$1:$B$10="東京")*($C$1:$C$10))
その他の回答 (2)
G1にVlookupでなく、 =IF(WEEKDAY(F1,2)>=6,2,1) とすればよいのでは? したがって、Vlookupで曜日を求めるためだけならA列とB列は不要になりますね。 また、日付自身も1セルで済ますなら、D,E,F列も不要で、 「2007/10/15」と1セルに入力してしまい、表示書式に「yyyy mm dd ddd」と 設定すれば、「2007 10 15 Mon」と表示されます。 当然WEEKDAY関数も使用できます。
お礼
シンプルに式を作りたいと思いながら余計ややこしいことにしていたようですね。実は20071015のようにひとつのセルに入っていたのをワザワザ分割していたのです。知ってることだけを使ってやろうとしたり応用力がないとダメですね・・・勉強になりました。ありがとうございました。
補足してください。 「=VLOOKUP(G1,$A$1:$B$8,2,FALSE) 」 はどのセルに入っているのですか? F列には 「=DATE(C1,D1,E1)」 が入っているのですか?
お礼
質問するのに間違った内容を書いているのは失礼でした。反省しています。気づかせてくださってありがとうございました。
補足
=VLOOKUP(G1,$A$1:$B$8,2,FALSE) はまちがえておりました。 G1ではなくF1で、=VLOOKUP(F1,$A$1:$B$8,2,FALSE) この式が G1にはいっています。 はい。F列に =DATE(C11,D11,E11) をいれています。 よろしくお願い致します。
お礼
関数に慣れていないせいかいちいち分割して考えてしまいますが、このようにすればG列とかは要らなくシンプルにしていけるんですね。勉強になります。ありがとうございます。