- ベストアンサー
EXCELの合計
A列に色々な顧客名がB列に数値が入っています。 現在顧客別にソートを掛けて合計を集計していますが 別シートに自動的に顧客別のシートをつくりそこに自動的に数値合計が 反映できる事は可能でしょうか(同じシート内でも可)。 C列に顧客と数値合計が飛ぶようにしたのですがソートを掛けると 行全体が動くので上手くいきません・・・
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! すでに回答は出ていますので・・・ 参考程度で目をとしてみてください。 Sheet1をSheet2にまとめるようにしてみました。 ↓の画像でSheet1に作業用の列を設けています。 作業列C2セルを =IF(COUNTIF($A$2:A2,A2)=1,ROW(A1),"") としてオートフィルでずぃ~~~!っと下へコピーします。 そして、Sheet2のA2セルは =IF(COUNT(Sheet1!$C$2:$C$100)<ROW(A1),"",INDEX(Sheet1!$A$2:$A$100,SMALL(Sheet1!$C$2:$C$100,ROW(A1)))) B2セルは =IF(A2="","",SUMIF(Sheet1!$A$2:$A$100,A2,Sheet1!$B$2:$B$100)) として、A2・B2セルを範囲指定し、B2セルのフィルハンドルで下へオートフィルでコピーすると 画像のような感じになります。 尚、数式はSheet1の100行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてください。 そして、顧客名の並び替えをSheet2で行っても変化がないと思います。 並び替えをするのであれば元データのSheet1で行ってください。 Sheet2に反映されます。 以上、長々と書きましたが 参考になれば幸いです。 どうも失礼しました。m(__)m
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1ではA1セルに顧客名、B1セルに金額と項目名が入力されており、それぞれのデータが下方に入力されるとします。 作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"") シート2ではA1セルに顧客名、B1セルに合計額とそれぞれ項目名を入力します。 A2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!C:C,ROW(A1))=0,"",INDEX(Sheet1!$A:$A,MATCH(ROW(A1),Sheet1!$C:$C,0))) B2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(A2="","",SUMIF(Sheet1!A:A,A2,Sheet1!B:B))
- avanzato
- ベストアンサー率54% (52/95)
- mshr1962
- ベストアンサー率39% (7417/18945)
■同シートの場合 >方法1(顧客が登場した最初の行に合計値が表示) C2=IF(COUNTIF(A$2:A2,A2)=1,SUMIF(A:A,A2,B:B),"") で下方にコピー C列に数値のある行のみにしたい場合は「データ」「オートフィルタ」で"空白でないセル"を選択 >方法2(顧客が登場した最後の行に合計値が表示) C2=IF(COUNTIF(A$2:A2,A2)=COUNTIF(A:A,A2),SUMIF(A:A,A2,B:B),"") で下方にコピー C列に数値のある行のみにしたい場合は「データ」「オートフィルタ」で"空白でないセル"を選択 >方法3(その行までの累計値が表示) C2=SUM(A$2:A2,A2,B$2:B2) で下方にコピー ■別シートの場合 A:B列を選択 「データ」「ピボットテーブル」で 顧客を行に、数値をデータ(数値の合計)にして実効 元データに変更・追加がある場合は、ピボットのシートでピボットの更新を押してください。
お礼
早急に有難うございました。 とりあえず、見よう見真似でSUMIFと$でどうにか出来たようです。 有難うございました。
お礼
有難うございました。 私が作業するにはこの作業が簡単で良いようです。 参考にさせて頂きました。