質問: エクセルの合計 エクセルにダウンロードした月間の収入表があるのですが、 合計がある一定の金額以上の顧客のみ表示するにはどうすればいいでしょうか。 いつもオートフィルで顧客をソートして顧客をひとつずつ見て合計しています。
回答: 回答no1です。 回答1では一定金額以上になっている行が何行あるかを求めるような式になっていました。どうやらご質問の意味は合計金額が一定の額以上の顧客のみを表示することのようですが、その場合でも内容はいろいろと考えられます。 ここでは顧客名とその合計金額を表示させる。また、さらに該当する顧客の内容すべてを表示させる。それぞれの方法について述べます。 シート1には元のデータが有って、まとめのデータをシート2に表示させることにします。 シート1では1行目には項目名がa1セルからf1セルまでに入力されているとしてa2セルの下方には顧客名がc2セルから下方には金額が入力されているとします。 データが多くなっても計算に負担のかからないために作業列を使って対応することにします。 ところで選択の基準となる一定金額ですがシート2のa1セルに入力することにしてシート2のb1セルには「円以上の顧客表」とでも入力します。その上で、シート1のg列を作業列としてg2セルには次の式を入力して下方にドラッグコピーします。 =if(or(sheet2!a$1="",a2=""),"",if(sumif(a:a,a2,c:c)max(sheet1!$g:$g),"",index(sheet1!$a:$a,match(row(a1)*1000+1,sheet1!$g:$g,0))) b3セルには次の式を入力して下方にドラッグコピーします。 =if(a3="","",sumif(sheet1!a:a,a3,sheet1!c:c)) これで合計金額が一定額以上の顧客名と合計額が表示されます。 それらの顧客名ごとのシート1でのデータを表示させるのでしたら例えばd1セルから右側の列にシート1と同じ並びで項目目を入力します。 d2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =if(or(row(a1)>count(sheet1!$g:$g),column(a1)>=match(1001,sheet1!$2:$2,0)),"",if(index(sheet1!$a:$f,match(small(sheet1!$g:$g,row(a1)),sheet1!$g:$g,0),column(a1))=0,"",index(sheet1!$a:$f,match(small(sheet1!$g:$g,row(a1)),sheet1!$g:$g,0),column(a1))))