• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:難解なエクセル集計の仕方を教えてください!!)

難解なエクセル集計の仕方を教えてください!!

zinchanの回答

  • zinchan
  • ベストアンサー率49% (97/197)
回答No.3

 2関係から、全体を把握することで、集計を困難にしているように思います。  いっそ、表いに、表あの関係を組み合わせた、全体の上位下位のつながりが理解しやすいような表を作成したらいかがでしょうか。  例えば、AはBとの直接関係しかないが、BはCとDに関係し、Cの下位はないがDにはE、Fと関係があるということでは、計算上、AとC、AとD、AとE・F等、間接的な関係および全体の関係がつかめません。よって、集計上間接的に関係するグループをそれぞれ表の列にまとめたらいかがでしょうか。  下記のような表を新たに作成し、「表い」に相当する部分は項目名とその数値を入力しておき、その左にA~Oまでの直接・間接的な関係を一連で記号(としての数値)にして列で入力しておきます。すなわち、「表あ」の直接関係をはずし、間接関係にまで及ぶ表を、「表い」に付け加える様式です。  例えば、一行目に記載されたA~OのAにはA~Gで一グループ、BにはB~Gで一グループ、CはBの下位でCの下位には何もないのでC単独、DにはD~Gで一グループという関係が一目で判別できる表です。 例  値 A B C D E F G H I J K L M N O A 1 1 B 2 1 1 C 4 1 1 1 D 5 1 1   1 E 6 1 1   1 1 F 7 1 1   1   1  G 8 1 1   1   1 1 H 9            1 I 10            1 1 J 11            1 1 1 K 12            1 1 1 1 L 13            1   1   1 M 14            1   1   1 1 N 15            1   1   1   1 O 16            1   1   1   1 1  1行目のA列の同列最上行か最下行に、 =SUMIF(C2:C16,1,$B$2:$B$16) ※ C2:C16はそれぞれ関係グループを表す列の範囲、$B$2:$B$16はA~Oの値の範囲として置き換えてください。 と入力し、Oの列までコピーします。  直接、間接関係に及ぶグループの、それぞれの値を合計した値がそこに表示されます。  この方法のメリットは、関係に変化が生じた場合、簡単に表の数値を入れ替えられ、集計式の変更をしなくて済む点にあります。また、新たな項目が増えても、表を拡大して集計式をコピーすれば済むので、メンテナンスが楽な点もあります。  デメリットは、直接関係以外にも間接関係等全体の関係を把握して、関与するグループ全てに同じ記号をつけなければならないのが面倒な点です。  しかし、いずれにしろ関係図が書けるのであればその把握は容易ですし、逆に関係の全体を把握しやすく、集計も難しく考えずに済むので、メリットの方が大きいと思うのですが、いかがでしょうか。

関連するQ&A

  • エクセルの使い方についてお教えください。

    エクセルの使い方についてお教えください。 例えば、 a | b | f c | g | j d | h | k | m e | i | l | n | o | のように、右肩下がりになっている列を、 a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | のように一列にまとめる方法は無いでしょうか? 何卒よろしくお願いいたします。

  • EXCELの表で縦横の入れ替え方法

    EXCELの表で 縦軸と横軸を入れ替える方法ってありますか? つまり A B C D E F G H I J K L っていう表を A E I B F J C G K D H L にしたいのです。

  • エクセルの関数でピボットテーブルのような集計

    以下のようなテスト結果の表(DB)があります。 列:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O   ,,,,1700,小野,,,,2,,0,A,B,0   ,,,,1200,小野,,,,4,,1,C,0,C   ,,,,1700,柴田,,,,5,,4,A,B,0   ,,,,1400,矢野,,,,3,,4,B,0,A   ,,,,1200,伊藤,,,,4,,1,C,D,0,   ,,,,1000,田村,,,,4,,3,D,C,A F列には、名前がフルネームで入力されています。同一人物が複数あります。 J列には、数字が1,2,3,4 L列には、A,B,C,D,E M列には、A,B,C,と数字の0 N列には、A,B,C,と数字の0 O列には、A,B,C,と数字の0 が、それぞれ入力されています。 このDBを元に L,M,N,Oのデータの個数を名前別に以下のように集計をしたいのです。      J , L , M ,N,O 名前,1,2,3,4,計,A,B,C,D,E,計,A,B,C,0,計,.... 小野, ピボットテーブルで考えましたが、5回行わねばならず、結合も考えると関数で何とかならないものか と質問させていただきました。 別に関数でなくても、もっと有効な方法がありましたらそれで結構です。御教示下さい。

  • エクセルについて

    エクセルで A B C D E F G H I J K L M N O P Q R … と並んでいるデータを A B C D E F G H I J K L … のように並べ変えたいのですが、最も効率のよい方法を教えてください。 上記のアルファベット1つにセル1つです。 Office2007を使用しています。 以上、宜しくお願い致します。

  • EXCELにて、平日のみの集計をしたい

    どうやってもわからなかったので・・・ 以下のような表を作っています   A  B  C  D  E  F  G  H  I  J  K  L 1 品名 7/21 7/22 7/23 7/24 7/25 7/26 7/27 7/28 平日 休日 合計  2    火  水 木 金  土 日  月 火 3    1  0  2  4  1  1  1  1  9  2  11 J3セルに平日の数量のみを集計する数式を設定したいのです L3にはSUM関数で合計を、K3にはL3-J3で集計を出すようにしたいです (A列には商品名が入ります) 祝日も休日にカウントしたいので、別シートに休日一覧をシリアル値で入力してあります 休日一覧のシートはA1~A22までの範囲にシリアル値を入れてあります (祝日の日数より多く範囲設定しているのは定休日なども設定するためです) よろしくお願いします

  • エクセル マクロでセルを自動移動

    例1のようになっているエクセル表があります。 データは右方向、下方向へ増えます。 Cの列以降は4つ単位でしかデータは増えません。 それを例2の表のように列A,Bのデータはそのままに Cの列以降の4つのセルを区切りに下の行に移動して、 空白の列まで言ったらA2の行以降を最後の行まで繰り返しするという マクロを書くことは可能でしょうか。 出来ましたらそのマクロを教えてください。 例1 A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 例2 A1 B1 C1 D1 E1 F1 A1 B1 G1 H1 I1 J1 A1 B1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 A2 B2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 A3 B3 G3 H3 I3 J3 A3 B3 K3 L3 M3 N3

  • Excelで飛び飛びのセル(列)を参照したいのですが…その2

     ある「sheet1」で、G1="A",H1="B",I1="C",J1="D",K1="E",L1="F",M1="G",N1="H",O1="I",P1="J",Q1="K",・・というように文字が入力されているとすると、5列飛びの値A,F,K・・・(G1,L1,Q1・・・)が欲しいのです。そして、その値が「sheet2」に、C5=A,D5=F,E5=K,F5=P・・・となるようにしたいのです。ただ数値が5ずつ増加するのではなく、そのセルに入力されている文字列を参照したいのです。  それをまた、「sheet1」の、G2="A",H2="B",I2="C",J2="D"・・・の値でも同じ事をしたいのですが・・・。  よろしくお願いします。

  • 2行のセルの入れ替え。

     初めまして、よろしくお願いします。  セルに A B C D E F G H I J K L 1 a b c d e f 2 g h i j k l 3 m n o p q r 4 s t u v w x 5 " ・ " ・ " ・ " 100 "  という表があります。これを A B C D E F G H I J K L 1 a b c d e f g h i j k l 2 m n o p q r s t u v w x 3 " 4 " 5 " ・ " ・ " ・ " 100 "  という風に、偶数行のデーターを奇数行の後ろにつけるようにしたいと思います。無理ならば奇数行だけのデーター、偶数行だけのデーターとなるように、何かよい方法を教えて頂きたく、よろしくお願いします。

  • エクセルVBAについて教えてください

    エクセル2003 シート1     A       B      C 1  3月1日 A 100     *A列はカレンダーコントロールより選択としています 2  4月1日 B 100 3  3月1日 C 200     *B列はコンボボックスより選択としています 4  3月1日 D 200 5  4月1日 E 300     *C列は直接入力としています 6  4月1日 F 300 7  3月1日 G 100 8  4月1日 H 200 9  3月1日 I 200 10  4月1日 J 100 上記シート1の表のC列を下記シート2のC列に条件集計する シート2    A       B       C 1  3月1日   A~E     500    *選択した日付ごと及びA・B・C・D・Eの集計  2  3月1日   F~J     300    *選択した日付ごと及びF・G・H・I・Jの集計     3  4月1日   A~E     400    *選択した日付ごと及びA・B・C・D・Eの集計    4  4月1日   F~J     600    *選択した日付ごと及びF・G・H・I・Jの集計  すいませんが上記コードを教えてください 困ってます よろしくお願いします      

  • C言語の配列の使い方について質問です。

    以下のプログラムを配列を使って見やすくしたいのですが、どのように作ったら良いでしょうか? 宜しくお願いします。 #include<stdio.h> int main(void) { int a, b, c, d, e, f, g, h, i, j, k, l, m ,n, o; /*5段目の処理*/ for(a = 1; a <= 15; a++) { for(b = 1; b <= 15; b++) { if(a == b) continue; for(c = 1; c <= 15; c++) { if(a == c || b == c) continue; for(d = 1; d <= 15; d++) { if(a == d || b == d || c == d) continue; for(e = 1; e <= 15; e++) { if(a == e || b == e || c == e || d == e) continue; // printf("%d %d %d %d %d\n", a, b, c, d, e); ////4段目//// if(a>b){ f=a-b; } else if(a<b){ f=b-a; } if(b>c){ g=b-c; } else if(b<c){ g=c-b; } if(c>d){ h=c-d; } else if(c<d){ h=d-c; } if(d>e){ i=d-e; } else if(e<d){ i=e-d; } // printf(" %d %d %d %d \n", f, g, h, i); /////3段目//// if(f>g){ j=f-g; } else if(f<g){ j=g-f; } if(g>h){ k=g-h; } else if(g<h){ k=h-g; } if(h>i){ l=h-i; } else if(h<i){ l=i-h; } // printf(" %d %d %d \n", j, k, l); /////2段目//// if(j>k){ m=j-k; } else if(j<k){ m=k-j; } if(k>l){ n=k-l; } else if(k<l){ n=l-k; } // printf(" %d %d \n", m, n); /////三段目///// if(m>n){ o=m-n; } else if(m<n){ o=n-m; } // printf(" %d \n", o); if(a != b != c != d != e != f != g != h != i != j != k != l != m != n != o){ printf("%d %d %d %d %d\n", a, b, c, d, e); printf(" %d %d %d %d \n", f, g, h, i); printf(" %d %d %d \n", j, k, l); printf(" %d %d \n", m, n); printf(" %d \n", o); } } } } } } }