Excelで集計に関する関数の質問です

このQ&Aのポイント
  • Excelで集計に関する関数の質問です。図を基に、セルの結合やウィンドウ枠固定などの条件を説明し、特定のセルに利用される関数についての質問をしています。
  • セルの結合やウィンドウ枠固定などの条件を満たすExcelのデータに対して、特定のセルに利用される関数についての質問です。図を参考にしながら、月ごとの時間の計、値の計などを表示させる関数について教えて欲しいと言っています。
  • Excelでのデータ集計に関する質問です。セルの結合やウィンドウ枠固定などの条件を満たすデータに対して、特定のセルに利用される関数についての質問です。具体的な計算や表示形式についても自身の理解を示しながら教えてほしいという要望です。
回答を見る
  • ベストアンサー

Excelで集計に関する関数の質問です

添付した図を基に質問します。4行目をウィンドウ枠固定して表示してあります。 行列番号を見てもらえたら分かると思いますが、要所でセルを結合してあります。 セルB6に=IF(B5="","",(IF(B5>1999,0,IF(E5<501,0,IF(AND(B5>499,E5<2001),(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(B5/100),MOD(B5,100),0)),IF(B5<500,TIME(INT(E5/100),MOD(E5,100),0)-(TIME(INT(500/100),MOD(500,100),0)),IF(E5>2000,TIME(INT(2000/100),MOD(2000,100),0)-TIME(INT(B5/100),MOD(B5,100),0),0))))))*24) D6に=IF(B5="","",IF(AND(B5<500,E5>500),(TIME(INT(500/100),MOD(500,100),0)-TIME(INT(B5/100),MOD(B5,100),0)),IF(AND(B5<2000,E5>2000),(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(2000/100),MOD(2000,100),0)),IF(AND(B5>499,E5<2001),0,(TIME(INT(E5/100),MOD(E5,100),0)-TIME(INT(B5/100),MOD(B5,100),0)))))*24) これは、項目A列5行目を参照しています。以下オートフィルします。 例えば7時から10時10分の差を求める場合、B6セルに700、D6セルに1010と1分単位で入力し、表示形式は0.0" H"です。 項目C,Dも同様で、項目C内E列には1時間30分の場合1.5と入力し30分単位です。表示形式は同様。 A列の日付欄には、1月1日の場合1/1と記入します。表示形式は日付の月/日です。 上記内容で添付図の上の表(A3:S30)項目B~D列のデータを下の表(A32:S39)で集計しようと思います。 1、F35~F38に月ごとの時間の計を表示させる関数 2、J35~J38には、月ごとの時間*単価を項目別に計算した値の計を表示させる関数 3、P35~P38にも上記同様の計を表示させる関数 以上、1,2,3に入力する関数が知りたいので、宜しくお願いします。 なお不明な点がありましたら随時補足していこうと思います。

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

  • ベストアンサー
  • noco_noco
  • ベストアンサー率100% (1/1)
回答No.1

回答になってないかもしれませんが、 私なら、月毎の集計表を作って、 全体は別シートで3D(串刺し)参照します。 <例> 集計値が各月別シートの同じB35にある場合、 全体集計のシートの適当なセルで、次のように入力する。 =sum(12月:3月!B35) 関数を複雑に組み合わせるより簡単だと思うのですが。

参考URL:
http://allabout.co.jp/computer/msexcel/closeup/CU20081105A/index2.htm
DIYsitumon
質問者

お礼

確かに別シートから参照すれば簡単に出来ますね。 答えを表示させたいセルのみに関数を打ち込むのは複雑になる事は分かっているのですが、その関数が知りたかったのです。 今回の場合は特に複雑な表でもなく入力する項目も僅かなので他のシートか、別の場所からの参照でも良いのですが、大量のデータ入力やシートが多数あるファイルなどではシート数も極力減らしたい時がありますので、今回この様な質問をさせて頂きました。 今回のパターンは他のケースでも色々と応用出来ると思いますので。 回答有難うございました。

DIYsitumon
質問者

補足

他に回答がない為とりあえず私が行なった方法を書きます。 別途=IF(A5="","",MONTH(A5))で月を抽出、=B6で上表参照D6も同様、=SUMIF($A$42:$A$53,"12",B$42:C$53)で集計して、表示させたいセルに項目ごとの集計を出しました。 ただ、この方法ですと元表の半分ぐらいセルが必要になるのと、表の性質からオートフィル出来ないので最初の列の入力が面倒ですね。 既に表を作成してある場合など、一部作り直す必要が出てくる場合もあると思います。 今回は表の規模が小さいので多少の入力は問題ありませんでしたが、やはり膨大なデータが入力してある大きな表ではとても根気が要るでしょうね・・ その時は元表自体を作り直すか別途置き換えてオートフィルしてそこから参照する方法が最も早いと思いますがシート数が増えてしまいますね。。 余談ではございますが、Excel2007は使いづらいですね。今回は2003で作成しましたが、ツールバー等使ときいちいち上のタブをクリックする時間が勿体無いですね><あと互換性も微妙に感じます。部分的に便利な機能もあるのですけれど。 長々すいません。他に良い方法があればまた宜しくお願いします。 今回は回答有難うございました。

関連するQ&A

  • EXCELの関数について教えてください。

    EXCELの関数について教えてください。 A列のセルに「18:00 」or 「18:30」 or「19:00」 or「19:30」と入力するとB列のセルに「8:00」と表示され、「17:30」と入力すると「7:00」と表示される方法を教えてください。 セルの書式の表示形式は「文字列」ではなく「時刻」に設定したいです。 多分IF関数をつかうを使うのではないかと思うのですが、書式が「時刻」のためかうまくいきません。 よろしくお願いします。

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

  • Excelの関数がうまく使えません。

    Excelで関数がうまく使えません。 「=IF(E2>=2000,200,IF(E2>=1000,100,IF(E2>=500,50," ")))」というのをH列のセルに入力しています。 計算はうまく?いくのですが、偽の場合に空白にしているのに、E列が空白でも200と反映されてしまいます。 ちなみにE列には「=IF(ISNUMBER(D2),(C2*D2)," ")」このような関数を使っております。 H列が空白のときに正しく空白にするにはどうしたらよいのでしょうか? 教えてください。

  • エクセル関数の質問です。

    エクセルでセルA1=4の場合セルB2=セルD1、セルA1=5の場合セルB2=セルE1、セルA1=6の場合セルB2=セルF1というように、セルA1に数字を入力するとセルB2に反映するようなセルB2に入力する関数を教えて下さい。  セルA1には月(4月から3月)の数字(4~12、1~3)が入り、4月のときにはD列(D1)、5月のときにはE列(E1)、6月~3月にはF列(F1)~O列(O1)の数字が入ります。よろしくお願い致します。

  • エクセルのif関数のエラー

    エクセルでif関数を使ってデータ処理をしたのですが、上手くいき ません。何がおかしいのかが分からない状態で困っています。 状況  A B C D E 1 : + = ? 関数式 とセルに入力してあるとします。(A1=:,B1=+,C1==,D1=?) 関数式のセルに以下の様に入力しました。 =IF(ISBRANK(D1)=TRUE,E1="",VLOOKUP(D1,$A$1$B$15,2,FALSE)) 目的はVLOOKUPだけではD1が空白の時にE1にNAMEと表示されるのを 避ける事でした。 そうすうとD1にA列の数字を入力すると、それに対するB列をE1に 表示するようになるのですが、D1が空白の時はB1が表示されて しまってます。  また一旦D1に入力した後、D1をデリートして空白にしてもE1には もとの数値がそのまま表示されたままになってしまいます。 文章で表現している分、かなり分かりにくい説明になってしまって いますが、お詳しい方いましたらアドバイスお願い致します。

  • 関数 数式 Excel

    すみませんが教えてください! E列に下のような関数を入れたところ正しく表示されませんでした・・・ どうぞよろしくお願いします。 A列(数字・空白を含む)が 1 の場合”◎” A列が1以外の場合は B列(別シートから参照のVLOOKUP関数が入っている)と C列(別シートから参照ののVLOOKUP関数が入っている) を足した数字が D列(別シートから参照ののVLOOKUP関数が入っている) が同じなら ”OK” 違うなら ”NG" と表示させたいので =IF(A1=1,"◎",IF(D181=(B181+C181),"OK","NG")) としてみましたが"◎"が表示される表示は正しいのですが "OK" "NG"が正しく表示されません。 これに加えていずれのセルにも空白が存在するのでエラーを出さないようにしたいです。 よろしくおねがいします!!

  • エクセル抜き出し合計関数式(SUNIF??)

     初めまして、よろしくお願いします。  C1に20、D1に32と入力すると、E1にA列の20から32の間の数字のB列の値の計(表ではA1の20とA3の28が当てはまるのでB1の2と、B3の1の計をE1に3と表示)を導き出す関数式を教えていただきたく、お願いします。     A  B  C  D  E   1  20  2 20 32  3 2  48  8 3  28  1 4  34  2 5  12  7 ・    ・  ・  ・    ・  ・  

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

  • エクセルでこれはやはり無理なことでしょうか?(二回目の質問)

    先日、同様の質問をした者ですが、仕事での用途を考え、下記のような変則表示形式を取っています。(合計セル-項目セル)  常連の回答者様から『一般的でない、アクセスでやること』との指摘を頂戴しました。  私はアクセスは分かりません。  私はC列の*合計数量から下段の等しい文字列を含んだセルの数量を引き、残数表示をE列に表示したいのですが、解決できず、今も困っています。  (B3合計500-150-150-200=0)  A    B    C     D   E 期日  型式  コード   数量  残数 3/1      A1合計  100 3/1 天1   A1    100   0 3/1 天3   B3合計  500 3/1 天7   B3    150  350 3/1 天3   B3    150  200 3/1 天8   B3    200   0 3/1      C2合計  600 3/1 壁2   C2    300  300 3/1 壁5   C2    150  150 3/1 壁3   C2    150   0   一般的でないのは承知しています。単純にこの表示形式を関数等で残数値を導くのは不可能なのでしょうか?  データーが多く、日々変動もあり手入力では無理です。IF,SUMIF,AND,ORを使って何度もトライしていますが、正しく表示できません。(条件設定、セル参照が分からない)エキスパートの方、助けて下さい。

  • エクセルIF関数について

    エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。     A  B     D   E 1  1  123    1  249 2  1  3      2  3 3  1  123    3  345 4  2  3      4  234 5  3  345    5  1665   6  4  234     7  5  555 8  5  555 9  5  555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?

専門家に質問してみよう