• ベストアンサー

Excel 配列数式の応用?

先の質問で、下記のことができるようになりました。 下記のような土日を除いた日付データでセルA11、A12に期首、期末の日付を指定すると、その期間の合計がセルC11に{=SUM(IF((A1:A9>=A11)*A1:A9<=A12),C1:C9,""))}の式で出せるようになりました。 平均もSUMをAVERAGEに変えて出せるのですが、 期間中のマイナスのデータ個数 =COUNTIF(C3:C9,"<0") のような値を 期首、期末の日付の指定で求める式は、どのような式でできるのでしょうか?お教え下さい。 ( 9行以降は行の挿入で新たなデータが追加されます。A列・・日付 B列・・曜日 C列・・数値等) 列行 A  B  C  1 10/01 金 3 2 10/04 月 0 3 10/05 火 空欄 4 10/06 水 -2 5 10/07 木 文字 6 10/08 金 -1 7 10/11 月 4 8 10/12 火 2 9 10 ------------------------------------ 11 10/04 (期首) 2 (←セルC11にマイナスのデータ数を出したい) 12 10/11 (期末)

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

  • ベストアンサー
noname#176215
noname#176215
回答No.2

配列数式をただ使うのではなく 理解した上で利用される ことをお勧めします。 =COUNT(IF((A1:A8>=A11)*(A1:A8<=A12)*(C1:C8<0),1)) Ctrl + Shift + Enter で確定 =SUMPRODUCT((A1:A8>=A11)*(A1:A8<=A12)*(C1:C8<0)) 普通に Enter で確定 他にも データベース関数の DCOUNT を使う方法があり ます。

now2150
質問者

お礼

回答、有難うございます。 配列数式はほとんど理解できていません。ですので"<0"を何処に入れるか見当もつかず試行錯誤でだめでした。 少し勉強しなければいけませんでしたね。

その他の回答 (3)

noname#176215
noname#176215
回答No.4

ANo.2 の者です。乗りかかった(?)船なので 一応 今後 の為に DCOUNT の使い方を提示しておきます。 A B C 1 日付 曜日 数値 2 10月1日 金 3 3 10月4日 月 0 4 10月5日 火 5 10月6日 水 -2 6 10月7日 木 文字 7 10月8日 金 -1 8 10月11日 月 4 9 10月12日 火 -1 10 11 (期首) (期末) 12 10月4日 10月11日 2 13 14 日付 日付 数値 15 >=38264 <=38271 <0 こんな風に表を変更します。(スペースがつぶれて見に くいとは思いますが) A15セル:=">="&A12 B15セル:="<="&B12 C15セル:<0 C2セル:=DCOUNT(A1:C9,1,A14:C15) 分からないところはヘルプで確認して下さい。

now2150
質問者

お礼

再度、有難うございます。乗りかかった(?)船w 少し勉強します・・自信なしですが・・。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.3

そこまで解っているのであれば、後は応用です。 =SUM(IF((A1:A9>=A11)*(A1:A9<=A12)*(C1:C9<0),1,0)) で、Ctrl + Shift + Enterで2と出ます。

now2150
質問者

お礼

回答、有難うございます。 配列数式はほとんど理解できていなかったので応用ができませんでした。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

{=SUM(IF((A1:A9>=A11)*(A1:A9<=A12)*(C1:C9<0)),1,0))} または =SUMPRODUCT((A1:A9>=A11)*(A1:A9<=A12)*(C1:C9<0))

now2150
質問者

お礼

回答、有難うございます。 配列数式でSUMでも可能なのですね。

関連するQ&A

  • Excel 数式の応用

    何度も同じような質問で恐縮です。 下記のような土日を除いた日付データでセルA11、A12に期首、期末の日付を指定して、期間中のプラスのデータ個数を求める式は、どのような式でできるのでしょうか? マイナスのデータの個数は、先の質問の回答で、 {=SUM(IF((A1:A9>=A11)*(A1:A9<=A12)*(C1:C9<0)),1,0))} {=COUNT(IF((A1:A8>=A11)*(A1:A8<=A12)*(C1:C8<0),1))} または =SUMPRODUCT((A1:A9>=A11)*(A1:A9<=A12)*(C1:C9<0)) でできるので、<0を>0にしたところいずれも違算になります。 ( 9行以降は行の挿入で新たなデータが追加されます。A列・・日付 B列・・曜日 C列・・数値等) 列行 A  B  C  1 10/01 金 3 2 10/04 月 4 3 10/05 火 空欄 4 10/06 水 -2 5 10/07 木 文字 6 10/08 金 5 7 10/11 月 0 8 10/12 火 2 9 10 ------------------------------------ 11 10/04 (期首) 2 (←セルC11にプラスのデータ数の個数を出したい) 12 10/11 (期末)

  • Excelの計算式を教えて下さい。

    下記のような土日を除いた日付の表でセルA11、A12に期首、期末の日付を指定すると、その期間の合計等をセルC11に出るようにしたいのです。 9行以降は行の挿入で新たなデータが追加されます。 どのような式でできるのでしょうか?お教え下さい。 A B C 1 10/01 金 1 2 10/04 月 2 3 10/05 火 5 4 10/06 水 3 5 10/07 木 2 6 10/08 金 1 7 10/11 月 4 8 10/12 火 2 9 10 ------------------------------------ 11 10/05 (期首) 15 (合計=セルC11) 12 10/11 (期末)

  • 数式を教えてください。(エクセル)

    教えてください。 A1セルに100、B1に200、C3に-300 A2セルに-50、B2に50、C3に-50 があるとします。 で、縦の計算法を常に引き算をしたいのです。(A1-A2のように) オートSUMの場合、Aの列はちゃんと計算できると思うのですが、そうするとBの列は250になってしまいますよね。 この答えは200-50=150としたいのです。 またC列は、-300引く-50で、答えは-250としたいのですが・・・ マイナスを認識しつつ、セルの数値がプラス・マイナスにかかわらず すべて引き算計算をしたいのですが、 そういう数式ってありますか?

  • Excelで配列数式を使わずにとびとびの集計をしたいのですが

     ご覧いただきありがとうございます。Excelで、下記のような条件で集計を行いたいと思っています。配列数式を使う方法は考えついたのですが、できれば配列数式を使わず、作業セルもマクロも使わずに普通の関数式で集計したいのです。どなたかおわかりになる方がいらっしゃいましたら、よろしくご教示をお願いいたします。 (条件)  ○4行一組のデータのそれぞれ1行目の数値を足し合わせる。  ○ただし、各組の1行目が空欄の場合は2行目の数値を使う。3行目・4行目は関係なし。  ○データの先頭はA4で、データ数は一定していない。 (考えついた式) {=SUM(IF(MOD(ROW(A4:INDIRECT("A"&ROW()-4)),4)=0,IF(A4:INDIRECT("A"&ROW()-4)>0,A4:INDIRECT("A"&ROW()-4),OFFSET(A4:INDIRECT("A"&ROW()-4),1,0))))}  よろしくお願いいたします。

  • エクセルで数式が文字列になってしまう

     こんにちは。教えて下さい。  あるセルに対して、例えば「=sum(a1:c1)」のような式を入力すると、結果が表示されずに「=sum(a1:c1)」がそのまま表示されます。  セルの属性に関係あるのかと思って、他の数式の入っているセルをそのままコピー(このときは数式になっている)、数式を書き換えたのですが、書き換えたとたん文字列になってしまいます。セルの書式で「標準」を指定しても変わりません。  どうすればいいのでしょう。  よろしくお願いいたします。

  • 再度、Excelの数式について、今朝

    再度、Excelの数式について、今朝 今朝、KURUMITO様から、下記1)~3)の条件での数式を親切に教えて頂きました。 教えて頂いた数式 =SUMPRODUCT(A4:A55,B4:B55)/H2 その後、条件が1)2)は同じですが、4)が増えたため3)が5)に変更になりました。 自分なりに次のように作ったのですが、エラーになります。=SUMPRODUCT(C4:C55="S")*(A4:A55,B4:B55)/H2 正しい数式を教えてください。バージョンは Excel2003 です、 宜しくお願いいたします。 1)A列 A4からA55まで、数字のデータが入ってるセルと、入ってないセルがあります。 2)B列もA列同様、B4からB55まで、数字のデータが入ってるセルと、入ってないセルがあります。(データの入ってる行は、A列で入っていれば、B列の同じ行に入っています)、 3)A列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。 4)C列もA列B列同様、C4からC55まで、B又はSの”文字のデータ”が入ってるセルと、入ってないセルがあります。(データの入ってる行は、C列(文字データ)で入っていれば、A列(数字データ)、B列(数字データ)の同じ行に入っています) 5)C列の”文字データ”がSならばA列とB列のデータの入っている行を順番に4から55行まで、掛け算をして(例えば、A5*B5)、その4から55行まで合計を、H2に入っている、ほかの合計の数値で、割り算をする計算式をK2のセルに、一つにまとめて入れ、計算結果を表示したいのです。

  • 配列数式を用いたエクセルマクロの使い方

    セルA1に「=SUM((A1:A12=5)*(B1:B12=""A"")*C1:C12)」という風に数式を表示形式を文字列として入れておき、他のセルに、この計算結果を入れるたいのですが、マクロでどのようにすればいいか、ご存知のかたがいらっしゃいましたら教えてください。 ちなみに、使用したい数式(セルA1に入れているもの)は配列数式です。

  • エクセルVBA、数式の入ったセルのコピーについて質問です。よろしくお願

    エクセルVBA、数式の入ったセルのコピーについて質問です。よろしくお願いします。 シートのA列は日付の入ったセルがあり、データを更新する度に行が追加されていきます。 数式(1)~(3)は、それぞれ異なる計算式が入っており、日付データを参照して計算を行っています。   A    B    C    D 1 日付データ 数式(1) 数式(2) 数式(3) 2 日付データ 数式(1) 数式(2) 数式(3) 3 日付データ   4 日付データ   5 日付データ   A列にデータが追加したときに、B~D列の数式をA列の最終行までコピーしたいのですが、 どのようなコードを書けばよいでしょうか? ちなみに、1行目のB~D列には、データ更新の有無に関わらず、必ず数式が入っているものとします。 何かよいアドバイスがあればよろしくお願いします。 【補足】 単純に考えると、B1~D1をA列の最終行までAUTOFILLすれば良いのでしょうが、データ数がかなり多く、 この方法だと時間がかかってしまいます。A列のデータ追加前の数式セルの最終行から、追加後の最終行までとすると、処理は早くなるのでしょうか?

  • 数式のどこが間違っているのかわかりません・・・・

    列Tの行1~2には文字列(タイトル行)、 列Tの行3~2942には数値が入っています。 列Tのいくつかのセルは、空白になっています。 列Tの、空白セルを除いた平均値を出したいので、 =SUM(T3:T2942)/2940-(COUNTBLANK(T3:T2942)) という式を作りました。しかし、確認のため別のセルに、 SUM(T3:T2942)の数値を入れ、 空白セルが6つだったので、 2934で割ると、 上記の式とは違う結果が出てしまいました。 これはどこが間違っているんでしょうか?? よろしくお願いします。

  • エクセルの数式で日付=日付がTRUEにならない

    エクセル2010のA列に日付、B列に時刻、C列にある数字が入っており、D列で指定した日付のC列の数字を足したいとします。  A       B   C      D     E 2014/3/4   0:00   1   2014/3/4    2014/3/4   1:00   0   2014/3/5 2014/3/4   2:00   1   2014/3/6   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ 2014/3/4  23:00   0 2014/3/5   0:00   1   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ この時、E列には数式「=sumif($A$:$A$,D1,$C:$C)」を入れれば、求めたい数字が出てくるはずです。 ここで質問なんですが、このときにA列に入っている日付とD列に入っている日付が同じなのに、認識されずにsumが行われない時があります。 これは何が原因と考えられますか? データの入力をwindowsでやったりMacでやったりしたことも原因の一つとも考えられますが、その場合に起こり得る問題は何があるでしょうか?

専門家に質問してみよう