• ベストアンサー

【Excel2003】件数を抜き出す方法について

【Excel2003】件数を抜き出す方法について 左表のようなデータがあります。 ここから右表を作りたいのです。 金額はSUMIFで良いと思うのですが、悩んでいるのは件数と多金額の日数です。 金額の0は件数として含めません。 プラスでもマイナスでも金額が入ったセル数を店別に出したいのです。 それと、「多金額の日数」はプラスでもマイナスでも300円以上の金額が入った日数を数えます。 ご教授お願いいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 一例です。 とりあえず1000行目までデータがあっても対応できる数式です。 H2セルは =SUMPRODUCT(($C$2:$C$1000=G2)*($D$2:$D$1000<>0)) I2セルは =SUMIF($C$2:$C$1000,G2,$D$2:$D$1000) J2セルは =SUMPRODUCT(($C$2:$C$1000=G2)*($D$2:$D$1000>=300))+SUMPRODUCT(($C$2:$C$1000=G2)*($D$2:$D$1000<=-300)) として、H2~J2セルを範囲指定しJ2セルのフィルハンドルで下へコピーではどうでしょうか? 尚、エラー処理はしていません。 以上、参考になれば良いのですが・・・m(__)m

jiyoun
質問者

お礼

ご回答ありがとうございました。 スッキリしていて良いですね。 私にも解読できる計算式です。 また機会ありましたらよろしくお願いいたします。大変助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No5です。 申し訳ありません。訂正します。F2セルには次の式を入力し下方にオートフィルドラッグしてください。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,IF(D2<>0,1,0)&"a"&D2&"b"&IF(ABS(D2)>=300,1,0),IF(D2=0,F1,LEFT(F1,FIND("a",F1)-1)+1&"a"&MID(F1,FIND("a",F1)+1,FIND("b",F1)-FIND("a",F1)-1)+D2&"b"&IF(ABS(D2)>=300,MID(F1,FIND("b",F1)+1,5)+1,MID(F1,FIND("b",F1)+1,5)))))

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

今後店の数が増加しても自由に対応できる方法です。 作業列をEおよびF列に設けてお求めの表はG列からK列に表示させることにします。 E2セルには次の式を入力します。 =IF(B2<>B3,MAX(E$1:E1)+1,"") F2セルには次の式を入力します。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,1&"a"&D2&"b"&IF(ABS(D2)>=300,1,0),LEFT(F1,FIND("a",F1)-1)+1&"a"&MID(F1,FIND("a",F1)+1,FIND("b",F1)-FIND("a",F1)-1)+D2&"b"&IF(ABS(D2)>=300,MID(F1,FIND("b",F1)+1,5)+1,MID(F1,FIND("b",F1)+1,5)))) E2セルからF2セルまでを選んでそれらの式を下方にオートフィルドラッグします。 G1セルからK1セルには項目名をそれぞれ入力します。 G2セルには次の式を入力してK2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF($E:$E,ROW(A1))=0,"",IF(COLUMN(A1)<=2,INDEX($B:$C,MATCH(ROW(A1),$E:$E,0),COLUMN(A1)),IF(COLUMN(A1)=3,LEFT(INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)),FIND("a",INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)))-1)*1,IF(COLUMN(A1)=4,MID(INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)),FIND("a",INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)))+1,FIND("b",INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)))-FIND("a",INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)))-1)*1,IF(COLUMN(A1)=5,MID(INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)),FIND("b",INDEX($F:$F,MATCH(ROW(A1),$E:$E,0)))+1,5)*1,""))))) 式は多少複雑になりますが計算速度はSUMPRODUCT関数の場合などに比べて速いでしょう。また、店の増加にも対応しています。EおよびF列が目障りでしたら列を非表示にすればよいでしょう。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.4

範囲 H2:J2 に次の[条件付き書式]を設定した後で、下記の数式を入力して、此れを下方にズズーッとドラッグ&ペースト    セルの値が  0    フォント色  白 H2: =SUMPRODUCT((B$2:B$1000=F2)*(D$2:D$1000<>0)) I2: =SUMPRODUCT((B$2:B$1000=F2)*(D$2:D$1000)) J2: =SUMPRODUCT((B$2:B$1000=F2)*(ABS(D$2:D$1000)>=300))

全文を見る
すると、全ての回答が全文表示されます。
  • aduken
  • ベストアンサー率69% (25/36)
回答No.2

こんにちは COUNTIF関数ではだめでしょうか? COUNTは範囲のセルの数字の入ったセル数を返す関数です。 =COUNTIF( 範囲 : 範囲 , 条件 ) で記述する事ができ、 >300 と書けば、300以上の判定ができます

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

J3=SUMPRODUCT(($B$2:$B$31=$F3)*(ABS($D$2:$D$31)>=300)) で出来ませんか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2000ですが、セル内での改行の仕方が分かりません。

    Excel2000ですが、セル内での改行の仕方が分かりません。 Excelのファイルを見て頂けますか?→http://www.geocities.jp/rankei32000/book1.xls ダメなら→http://www.geocities.jp/rankei32000/yookyuusho1.htm 上記で住所と電話番号のところで、右表を左表のようにセル内で改行したいのですが、出来ません。 左表はないものとして、コピペとかのやり方でなく、右表だけの操作で改行したいわけです。 宜しくお願い致します。

  • 右表を参照して該当する左表のセルを点滅させる

    右表は日々変わる表で、7列からなる表です。 左表は7列×30行からなる表です。 「点滅」ボタンを押すごとに、右表の一列目に示されている数と同じ数値のセルの色を左表から選んで セルの色を点滅させます。 別の「消す」というボタンを押すと点滅が消えて元に戻ります。 次いで最初の「点滅」ボタンを押すと、今度は右表の二列目に示されている数値と同じものを左表から選んで、セルの色を点滅してくれる・・・。これを次々と10列まで続けたいのですが。 右表も左表も同一シート上に作ります。 どうか宜しくお願いいたします。

  • 【Excel】ある条件を満たすまでの件数を調べるには?

    Excel2003を使用しています。 ある書類作成で、合計金額の70%に達するまでには、何件目まで(何行目まで)記載すればよいかを調べるには、どのようにしたらよいでしょうか? データは、A列~K列の6行目以下に入力されています。 金額はG列に、降順に並んでいて、合計金額をH1セル、H1セルの70%の数値をH2セルに出しています。 A列には、6行目以下に連番がふってあり(A6=1,A7=2,A8=3,…)、H2セルの値(合計金額の70%)を超えた行のA列に入力されている値を取得できないかなと思っているのですが…。 うまく説明できなくて申し訳ないのですが、よろしくお願いします。

  • 【Excel2003】複数Sheetを対象にしたSUMIFの使い方につ

    【Excel2003】複数Sheetを対象にしたSUMIFの使い方について 実際は添付図と違い、表がSheet別になっています。 日付ごとに数量と件数(=金額の入ったシート数で計算)を出したいのです。 計算式は普通にSUMIFで括れば良いと思います。 しかし、実際は検索先となるSheetが30枚ほどあるのです。 =SUMIF(Sheet1!XXX,XXX,Sheet1!XXX)+SUMIF(Sheet2!XXX,XXX,Sheet2!XXX)+・・・・・ とかなり長い計算式となり「長すぎるよ!」みたいなエラーが出ます。 これを回避する方法はありませんか?

  • エクセルの関数 (1ヶ月の件数と金額)について

    下記のように、1年間を通しての担当者ごと取引金額の表があります。 受付日 担当者 取引金額 1/5   山本  1500円 1/6   田中  2500円  ~ 2/5   山本  2800円  ~ 12/1   山本  3000円 1ヶ月ごとに担当者件数と取引金額をだしたいのですが、 1/1~1/31までの件数とどういう関数でだしたらいいのでしょうか? 1年を通しての件数は、下記でできるのですが、 件数 =COUNTIF(B1:B100,"山本") 金額 =SUMIF(B1:B100,山本,C1:C100) すいません、よろしくお願いします。

  • SUMIF関数で試行錯誤しています

    Excel2003です。 左表から選択範囲を決めて右表の[I3] A*を検索条件に 値[D5] +10と[D8] +5のAの荷姿だけの合計15を求めたい のですが、わかりません。=SUMIF(E3:E10,I3,D3:D10)で求めると -となる値も計算に含まれてしまい答えは、10になってしまいます。 右下表の[I9] C*を検索条件にした答えも-1になりますが、 これを0にできないかと考えています。 SUMIF関数と他の関数の組合せを使ってできるのではないかと いろいろ試行錯誤しているのですがわかりません。 ヒントだけでも良いので、お解かりの方いましたらよろしくお願いします。

  • Excel_条件に合う範囲の平均値の求め方

    Excel関数についての質問です。 以下のようなデータが合った場合、条件に合う範囲のデータのみ 抜き出して平均値を求める方法を教えてください。 ■やりたいこと マイナスが続いている範囲を見つけ出し、マイナスが続いている 範囲のみの平均を算出する。 以下で言うとB4~B7の平均を自動で計算してくれる 関数を考えています。 A列:時間が入っていますが、これ自体も他の値を時間に換算したもの。 (式が入っています。) B列:データが入っており、プラスの領域とマイナスの領域を交互に繰り返す。    A  B 1 Time DATA 2  0   0.05 3  6   0.04 4  8   -0.02 5  11  -0.01 6  15  -0.03 7  17  -0.05 8  21  0.05 9  24  0.06 10  27  -0.03 ・・・(以下プラスとマイナスが交互に続きます。) DABERAGEなどの様に、条件に合うセルの平均ではなく、 ある範囲のセルの平均を出したいと思いますが 中々良い案がありません。 よろしくお願いします。

  • Excel・プラス値とマイナス値を一発で入れ替えたい(初心者)

    とある会計システムからデータをExcelにDLしたいのですが そのシステムではプラス値とマイナス値が逆転して表示されるため DLしたExcelデータもプラスマイナス逆転状態です。 これを一発で正しい正負の状態に直す良い方法はありませんか? ちなみに私の同僚はDLしたシートを同ブック内でコピーして A1=A1’×-1、と数式を入れ、全てのセルにコピー&ペーストしていますが データが膨大なのでできればこの方法は取りたくないのです。 状況説明が下手で申し訳ありませんが宜しくお願いします。

  • 画像が元のデータで、日付がA列に金額と件数が

    画像が元のデータで、日付がA列に金額と件数が D列に二段にわたり入力されています。 画像の元のデータ表から別シートの転記表に値を それぞれ計算して、転記していきたいのですが、 B列の番号が普通の番号と「★」番号に分か れているため日付ごと及び番号の種類ごとに SUMIF関数等で条件ごとに集計したいのです。 例えば、1月1日なら、通常番号(1と2)の金額を合計 して、25,000円にして転記表のB2に、件数はC2に 代入したいです。 さらに★1と★2の金額を合計して、40,000円を B3に、件数をC3に代入したいです。 転記表のスタイルはA列に日付(1/1から1/31) が入っています。B列に料金、C列に件数、いずれも二段書きです。 上段に通常番号、下段に★番号合計です。 元のデータと転記表の日付の合わせ方が分からないのと 番号の種類ごとに合計するSUMIF関数を教えてほしいです。 ちなみに日付は1月1日から1月31日まで入力されています。 お願いします.

  • Excel2002VBAを使って集計値を自動入力

    Excel2002を使用しています。 コード  件数  区分 201    1    1 202    2    3 201    1    5 201    2    2 202    1    4 203    4    1 201    2    1 202    3    5 sheet1に“コード”をセルA1とする上記のような リストがあるとして、sheet2のセルA1に コード201の区分1と2の件数の計5と コード202の区分3と4の件数の計3の合計8を Excel2002VBAを使って自動入力したいのですが 書き方が思いつきません。 ご教授よろしくお願いします。

専門家に質問してみよう