• ベストアンサー

曜日を条件に検索をしたいです。

A列には「yy/m/d (aaa)」形式で(今日なら07/10/25 (木)) 土、日、祝日を抜いた日付が A1セルからA1000セルまで入力されています。 (データは日々増えていきます) B列にはランダムな数字が入っています。 やりたいこと1 オートフィルタで 「(月)」のデータを摘出したいです。 オートフィルタのオプションで(月)を含むで検索しても 何もヒットしません。 やりたいこと2 月火水木金それぞれのB列の合計が知りたいです。 SUMIF関数で「=SUMIF(A:A,"月",B:B)」 と入力しても0になってしまいます。 よろしくお願いします。

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

  • ベストアンサー
  • tokpy
  • ベストアンサー率47% (1313/2783)
回答No.1

Excelの場合,日付はシリアル値と呼ばれる数字で管理されています。つまり,見かけは「07/10/25 (木)」であっても,実際にセルに設定されているのは「39380」という数字なのです。(ちなみに,これは1900年1月1日から数えて39380日目という意味) また小数以下は時間を表しますが,ここでは時間は入力されていない(午前0時になっている)とします。 ですから,特定の曜日を検出したい場合は,7で割った余りを見れば良いと思います。シリアル値を7で割った時に 余りが無いときが土曜日 余りが1のときが日曜日  : 余りが5のときが木曜日 という感じになります。 例:(表示形式を数値にしておいてください) セルA1に日付が入っている場合にセルC1に次の式を入れてください。 =MOD(a1,7) もし,A1に「07/10/25」が入力されていれば「5」となるはずです。

lkhjlkhjlk
質問者

お礼

と言うことは月から金の場合は2から6の数字をSUMIFなどで検索して 合計を求めればいいのですね。 大変参考になりました。ご回答ありがとうございます。

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

その他の回答 (3)

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

(1)表示形式とセルの「値」というものが、エクセルでは違うということを認識してないための、的外れの質問です。 (2)またフィルタなどの、エクセルの操作などいろんな場面で、関数式が使えるところと使えないところがあることを覚えておくこと。 どこで使えるかは、経験で知るほかない。 使えるのは条件付書式(そのままではないが)、入力規則等です。 (3)エクセルの日付はセルの値は、日付シリアル値という整数で持っている。 この点を良く理解しておくこと。 >と言うことは月から金の場合は2から6の数字をSUMIFなどで検索して 合計を求めればいいのですね。 #1のお礼でこういっているが、違います。WEEKDAY関数を 噛ました結果が2-7(火ー日の場合)を調べることになる。 それにWEEKDAY関数には第2引数で、3通りあるので注意が必要) ーー SUMIFについて しかし =SUMIF(A1:A10,WEEKDAY(A1:A10,2)=2,B1:B3) はできない。 式の中で関数WEEKDAYを噛ませられない。 ーー 例データ 2007/10/19 5 2007/10/20 1 6 2007/10/21 2 7 2007/10/22 3 1 2007/10/23 4 2 2007/10/24 5 3 2007/10/25 6 4 2007/10/26 7 5 2007/10/27 8 6 2007/10/28 9 7 2007/10/29 10 1 2007/10/30 11 2 に場合、SUMIFと似た書き方は =SUM(IF(WEEKDAY(A1:A12,2)=2,B1:B12)) と入れて、SHIFT+CTRL+ENTERきを3つを同時押しする。配列数式という。 結果15 これはまだ質問者には理解し難いだろう。そのように覚えるしかない。 また配列数式でやれるものはSUMPRODUCT関数でもやれる。 そちらなら =SUMPRODUCT((WEEKDAY(A1:A12,2)=2)*(B1:B12)) これもすぐには理解できないでしょう。なぜ掛け算(*)が真中に来るのなど。 そこで、上記のようにC列にWEEKDAY関数の結果を出して(作業列) =SUMIF(C1:C12,2,B1:B12)  とするのもあるのかもしれない。

lkhjlkhjlk
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

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

一例 =SUMPRODUCT((WEEKDAY(A1:A1000)=2)*(B1:B1000))

lkhjlkhjlk
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

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

こんばんは 作業列使用案 C列に =WEEKDAY(A1) と入れて下へフィルコピーします。各曜日の合計を出すのにこのC列を使います。 合計は例えば月曜日なら =SUMIF(C1:C1000,2,B1:B1000) とします。 SUMIF関数の第2引数を変えれば各曜日の合計が出来ます。 また、C列でオートフィルタを使って抽出すればSUBTOTAL関数で合計を出すことが出来ます。 配列数式案 例えば月曜日の合計の場合 =SUM(IF(WEEKDAY(A1:A1000)=2,B1:B1000)) と入れてShift+Ctrl+Enterキーで確定します。 この方法はデータが多くなるほど処理が重くなります。 このほかに1行目に項目行を挿入してデータベース関数のDSUMを使う方法もあります。

lkhjlkhjlk
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

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

関連するQ&A

  • Excel2003 ユーザー定義関数 で SUBTOTALとSUMPRODUCTの複合できますか?(複数条件)

    こんばんは。お願いします。 まず、セルA2、B2にそれぞれフィールド名"あ"、"い"があるとします。 この2列目以下にオートフィルターを使います。 A列のA3,A4…には文字列"a","b","う",または"かき"が入っていて、 B列のB3,B4…には数値(整数)が入っているとします。 このとき、セルB1にVBAで作成した関数を入れたいと思っています。 Excel2003です。 その関数は、以下の条件(1)と(2)を同時に満たします。 (1)A列が"a"または"かき"である場合のみ、その行のB列の数値の合計を計算する(SUMIF関数で可能) (2)オートフィルターを用いて抽出したら、表示されているB列の数値だけの合計を計算する(SUBTOTAL関数で可能) (3)作業列は使えません。 要するに、表示されているセルのうち、条件にあうもののみ計算したい、ということです。 もしこのようなことがワークシート関数でもできるのであれば、それで構いません。 どうぞ、よろしくお願いいたします。

  • SUMIF関数で検索条件がわからず困っています

     ECXEL 2003(OS:WindowsXP)を使用しています。  A    B    C  10  150  50  10  150  80  10  150  20  15  100  100  20  60   40  20  60   20  上記の表でA列内の同じ数値にあたるC列の合計数をB列の各々のセルに表示させようと思っています (例:A列の「10」のC列の合計「150」をB列の各セルに表示)。SUMIF関数の「検索条件」の欄に 文字列やセル名ではなく、A列内で同じ数値ごと(例:10・15・20の各合計がでるよう)に自動計算する数式が あるように聞いていますので、教えて戴けないでしょうか?  また、SUMIF関数にこだわらずいい方法があれば教えていただけましたら幸いです。

  • Excel 日付の検索条件

    A列に日付、B列に数値が入っていると仮定します。 たとえば、A列に2004/5/1~2004/5/31という数値が入っている場合、該当するB列の数値の合計をだしたいです。 シートのデータが無限に増えていく為、どこかのセルに検索条件を置く、という形は使用したくありません。 =SUMIF(A:A,"【2004/5/1~2004/5/31】",B:B)の関数を使用したいのですが、検索条件をどうすればいいのかがよくわかりません。 (何を記入しても0を返してきます) 検索条件、または他に使用できる関数があれば教えていただきたいです。 宜しくお願いします_(._.)_

  • 【Excel】複雑な関数式を連続入力するには?(オートフィルは無理?)

    Aの列に「社員名」の項目が並んでいます。 Bの列に「売上数」の数値が並んでいます。  A   B 今川  16 武田  24 上杉  44 今川  33 武田  29 今川  31 … Cの列に社員名を入力し、各社員の売上数をDの列にて求めます。 D1のセルに、「=SUMIF(A1:A99,C1,B1:B99)」 D2のセルに、「=SUMIF(A1:A99,C2,B1:B99)」 D3のセルに、「=SUMIF(A1:A99,C3,B1:B99)」 … と、このように連続入力したいんですが、オートフィル機能を使ったら、 D2のセルが、「=SUMIF(A2:A100,C2,B2:B100)」 と、数値が全部上がってしまうんです。 単純な計算式の連続入力ならオートフィル機能は便利ですが、 例のような複雑な場合だと連続入力が出来なくなってしまいます。 どうすれば、複雑な関数式の連続入力が出来ますか?

  • 日付でデータを抽出したい

    A列には2007/10/1~2007/10/31と入力されていて B列にはランダムに数字が入っています。 yyyy/m/d~yyyy/m/dまでのB列の平均を求めたいです。 「yyyy/m/d」(検索する日付)は常に変えられるようにしたいです。 オートフィルタのオプションでも出来るのですが 値を求めて別セルに入力したいため それ以外の方法が知りたいです。 A列yyyy/m/dに隣接するB列の値だけなら VLOOKUP関数で求めたい日付をC1に入れて =VLOOKUP(C1,A:B,2)で求められるのですが 「yyyy/m/d~yyyy/m/d」の求め方がわかりません。 よろしくお願いします。

  • エクセルで3つの条件で検索したい場合

    エクセルで3つの条件で検索したい場合、どうすればいいですか? オートフィルター オプション 抽出条件の指定 「  」を含む 「  」を含む で、3つ目の条件を入れる項目がありません。 例えばシートに 列 A B C D E F とあり、 「A」を含む 「B」を含む 「C」を含む という三つの条件で抽出したい場合、どのようにオートフィルター オプションを使えばいいのでしょうか? ▼マークのフィルターをクリックして 外したい項目のチェックボックスを外せば、A,B,Cを抽出できることはわかってますが 今回は例なだけで、実際はもっと複雑なデータなので、 「オートフィルター オプション」「抽出条件の指定」のやり方が知りたいです。

  • 「で始まる」という条件で検索をしたい

    A1「あああ」 A2「あいう」 A3「11あいう」 と入力しています。 この状態で検索をしたいのですが 条件を「『あ』で始まる」としたいのです。 しかし検索のボックスに『あ』と入力して検索を掛けると 全てがヒットしてしまうし、 「セル内容が完全に同一であるものを検索する」 にチェックを付ければ、 どれもヒットしません。 解決策としては オートフィルタをするかマクロを組むかしかないでしょうか? 何かわかる方よろしくお願いします。

  • 条件付き書式について

    条件付き書式でセルへ色を付ける方法を教えてください。 ●Office2013使用 ●別シート名「祝日」で、祝日リストを作成済み  (A列に祝日日付を入れています) ●A2には「1」としか表示されていませんが  yyyy/m/d(aaa)の「d」のみ表示するよう書式設定 ●B2には「金」としか表示されていませんが  yyyy/m/d(aaa)の「aaa」のみ表示するよう書式設定 <やりたいこと> 書式設定(土日はWEEKDAY、祝日はCOUNTF使用)で 土・日・祝日のセルに色を付けたいのですが C列だけ色が付きません。 C列には文字を入力する予定ですので 文字を入れても背景の色はAB列と同じのまま… そんなこと可能でしょうか。 色々調べてやってみたのですがギブアップです…。 どなたかお詳しい方、教えていただけないでしょうか。 宜しくお願い致します。

  • EXCELのオートフィルタについて教えてください。

    下記のようにデータが入力されています。   A   B   C 1 あ 2 い 3 う 4 え 5 お C列のC1に「=A1」C2に「=A2」と入力してオートフィルタを使って、「C3」以下に入力するとオートフィルタが使用できます。 しかし、以下のようにデータが入力されている場合はオートフィルタが使用できないのですが・・・   A   B   C 1 あ 2  3 い 4  5 う 6 7 え 8 9 お C列のC1に「=A1」C2に「=A3」と入力してオートフィルタを使って、「C3」以下に入力するとオートフィルタが使用できません。 簡単なことなのかもしれませんが、今一理解に苦しんでいます。 宜しくお願いいたします。

  • Excel で 複数条件の合計を出したい。。。

    どなたかご存知の方がいたら教えてください!!!(汗) 下記のようなデータがあります。 列は時系列でデータがどんどん増えていきます。 例)A列=1月  1行目=Xの時系列データ   B列=2月  2行目=Yの時系列データ   C列=3月  3行目=Xの時系列データ    ・      4行目=Zの時系列データ    ・   A列のXのデータの合計をしたい場合は、SUMIF関数を 使えばよいと思うのですが・・・ あるセルに○月と入力するとそのセルの日付を参照して、 その月のX条件だけを満たす合計を出す場合にはどのような関数を使えばよいのでしょうか? もしくは、どのように関数を組合せばよいのでしょうか? なかなかうまく説明できなかったのですが、 よろしくお願いします!!!

専門家に質問してみよう