- 締切済み
エクセル関数について
エクセルに入力してある期間ごとに、データの合計値を出して、変化を見たいと考えています。 以下、エクセルデータ H25/1/2~H25/2/1 H25/2/2~H25/2/25 ・ ・ ・ また別のシートに日付と金額のデータが入力してあります。 エクセルデータ 1/5 5000円 2/6 6000円 2/4 4000円 ・ ・ ・ 以下のようなSUMIF関数を使用してみたのですが、">=41276"の範囲の41276を数字から期間が入力してあるセルに変えると0になってしまいます。(たとえば41276→C1) =SUMIF(A1:A10,">=41276",B1:B10)-SUMIF(A1:A10,">=41306",B1:B10) エクセル勉強不足で申し訳ないですが、何か良い方法はありますか? よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答No.2です。 先程の私の回答内容では基本的な処が解り難かったのではないかと思いますので、念のために捕捉させて頂きます。 要するに、SUMIF関数やCOUNTIF関数などの条件に、セル参照と"=","<",">"を組み合わせて使う場合には、 ,">=A2", ではなく ">="&A2 の様に、=、<、>、の部分は" "の中に入れるものの、参照先のセル番号は" "の外に置き、"=","<",">"等との間は、「&」を入れて関係づける様にして下さい。 例えば、C2セルに数値の41276が入力されている場合には、適当なセルに =">="&C2 と入力しますと、そのセルには >=41276 という文字列データが表示されます。 この事から解ります様に、 =SUMIF(A1:A10,">="&C2,B1:B10) という関数は、「C2セルに数値の41276が入力されている場合において」は =SUMIF(A1:A10,">=41276",B1:B10) と同じ意味になりますし、「C2セルに数値の41306が入力されている場合において」は =SUMIF(A1:A10,">=41306",B1:B10) と同じ意味になります。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、Sheet1には以下の様に入力されているものとします。 A列 B列 C列 1行目 最初の日 ~ 最終日 2行目 H25/1/2 ~ H25/2/1 3行目 H25/2/2 ~ H25/2/25 又、Sheet2には以下の様に入力されているものとします。 A列 B列 1行目 日付 金額 2行目 H25/1/5 5000 3行目 H25/2/6 6000 4行目 H25/2/4 4000 そして、Sheet1のD列に期間毎の合計値を表示させるものとします。 まず、Sheet1のD2セルに次の関数を入力して下さい。 =IF(OR(ISNUMBER(1/DAY($A2)),ISNUMBER(1/DAY($C2))),SUMIF(Sheet2!$A:$A,"<"&IF(ISNUMBER(1/DAY($C2)),INT($C2)+1,9E+99),Sheet2!$B:$B)-SUMIF(Sheet2!$A:$A,"<"&IF(ISNUMBER(1/DAY($A2)),INT($A2),0),Sheet2!$B:$B),"") そして、Sheet1のD2セルをコピーしてから、Sheet1のD3以下に貼り付けて下さい。 以上です。
- Cupper-2
- ベストアンサー率29% (1342/4565)
ごめん。何を言っているのか最終的な判断ができない質問なので補足を要求します。 結局何をしたいの? 期間が入力してあるセルには文字列が入っているんでしょ。チルダ(~)記号で繋がった文字列が。 日付のシリアル値が入っているわけではない。 (少なくとも質問文からはそう読み取れます) それを考慮して関数式を組み立てましょう。 C1って結局ナニよ? ちょっと厳しいことを言いますが、ナニを質問しているのか第三者が分かるようにしましょう。 質問者さんだけが分かったつもりになっている文章では質問の意図を伝えられません。