画像データから日付ごとに条件ごとに集計したい方法

このQ&Aのポイント
  • 画像データの元の表から、日付ごとに条件ごとに集計するためにはSUMIF関数を使用します。
  • たとえば、1月1日の場合は通常番号(1と2)の金額を合計して25,000円にし、件数はC2に代入します。
  • さらに、★1と★2の金額を合計して40,000円をB3にし、件数をC3に代入します。
回答を見る
  • ベストアンサー

画像が元のデータで、日付が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日まで入力されています。 お願いします.

この投稿のマルチメディアは削除されているためご覧いただけません。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

現在のデータ構成表からはご要望を達成する事は無理とは云いませんが非常に難しい数式が必要です。 表の工夫次第で簡単になりますのでご一考下さい。 一例です。 (1)1行に番号に関わる情報を全て設定する(C列、D列を2行から2列) (2)日付と番号情報と合成(=A1&B1)して別列に一意データを設定する(仮にyyyymmddsnn:西暦とsは0を普通、1を★付き番号、nnは一連番号) 以下のSUMIF関数(エクセル2003以下では単一条件しかできない、エクセル2007以上は複数条件が可能)でも計数できるようになると思いますが如何でしょうか。 普通番号は=SUMIF(検索列,text(対象日付セル,"yyyymmdd"&"0*",金額又は件数の列) ★付き番号は=SUMIF(検索列,text(対象日付セル,"yyyymmdd"&"1*",金額又は件数の列)

aidorumary
質問者

補足

一意データの設定はよくわからないのですが、教えてください。

その他の回答 (2)

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

元のデータ表がシート1に有るとして、またデータは2行から下方に有るとして、E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(D2="","",IF(A2<>"",A2+D2*10^-8,IF(AND(A2="",ISERROR(FIND("★",B2)),ISERROR(FIND("★",E1))),IF(B2<>"",E1+D2*10^-8,E1+D2*10^-10),IF(AND(A2="",ISNUMBER(FIND("★",B2)),ISERROR(FIND("★",E1))),"★"&(INT(E1)+D2*10^-8),IF(AND(A2="",ISNUMBER(FIND("★",E1))),IF(B2<>"","★"&(MID(E1,2,16)*1+D2*10^-8),"★"&(MID(E1,2,16)*1+D2*10^-10))))))) また、F2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(LEFT(E2,6)=LEFT(E3,6),"",IF(AND(NOT(ISNUMBER(E3)),ISNUMBER(E2)),INT(E2),IF(AND(NOT(ISNUMBER(E2)),ISNUMBER(E3)),"★"&INT(MID(E2,2,6)*1),""))) そこでお求めの表ですが例えばシート2のB1セルには金額、C1セルには件数と入力します。 A2セルから下方に1月1日から1行おきに連続して日付を入力するとしてA2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(MOD(ROW(A1),2)=1,DATE(2010,1,ROUNDUP(ROW(A1)/2,0)),"") B2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF($A2<>"",IF(COUNTIF(Sheet1!$F:$F,$A2)=0,"",IF(COLUMN(A1)=1,MID(INDEX(Sheet1!$E:$E,MATCH($A2,Sheet1!$F:$F,0)),7,8)*1,MID(INDEX(Sheet1!$E:$E,MATCH($A2,Sheet1!$F:$F,0)),15,2)*1)),IF(COUNTIF(Sheet1!$F:$F,"★"&$A1)=0,"",IF(AND($A2="",$A1<>""),IF(COLUMN(A1)=1,MID(INDEX(Sheet1!$E:$E,MATCH("★"&$A1,Sheet1!$F:$F,0)),8,8)*1,MID(INDEX(Sheet1!$E:$E,MATCH("★"&$A1,Sheet1!$F:$F,0)),16,2)*1))))

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

ご希望のレイアウトにまとめるには以下のような手順で数式を作成するのが最も簡単な対応だと思われます。 まず、数式を簡略化するために、以下の操作で元データのA列にすべて日付を入力します(必要ならこのデータを条件付き書式を利用して見掛け上非表示にすることもできます)。 A列のデータ範囲を選択してCtrl+Gでジャンプダイアログを出して、「セル選択」から「空白セル」にチェックを入れて「OK」し、空白セルを選択した状態で、数式バーに「=A2」のようにアクティブセルの1つ上のセルを選択し、Ctrlキーを押しながらEnterします。 上記の表のリストにしてあれば、転記表シートの各セルに以下のような数式を入力するとそれぞれの集計を行うことができます。 B2セル =SUMPRODUCT((Sheet1!$A$2:$A$300=MAX($A$2:A2))*ISNUMBER(Sheet1!$B$2:$B$300)*(Sheet1!$C$2:$C$300="料金")*Sheet1!$D$2:$D$300) B3セル =SUMPRODUCT((Sheet1!$A$2:$A$300=MAX($A$2:A3))*NOT(ISNUMBER(Sheet1!$B$2:$B$300))*(Sheet1!$C$2:$C$300="料金")*Sheet1!$D$2:$D$300) C2セル =SUMPRODUCT((Sheet1!$A$2:$A$300=MAX($A$2:A2))*NOT(ISNUMBER(Sheet1!$B$2:$B$300))*(Sheet1!$C$2:$C$300="料金")*Sheet1!$D$2:$D$300) C3セル =SUMPRODUCT((Sheet1!$A$2:$A$300=MAX($A$2:A3))*NOT(ISNUMBER(Sheet1!$B$2:$B$300))*(Sheet1!$C$2:$C$300="料金")) 以上4つのセルを選択し、下方向に日付分だけオートフィルします。

関連するQ&A

  • エクセルの関数 (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) すいません、よろしくお願いします。

  • Excelで日付が入っていたら金額を合計したい

    Excel2007を使用しています。 支払い報告書をエクセルで作ろうとしています。 D列に金額を入れ E列に実際に支払った日付(10/18と入力します)を入力すると セルB2の支払済合計額に合計金額が入るようにしたいです。 またE列に日付を入力せずにいると セルC2の支払い予定額が入るようにしたいです。 なおE列には日付以外にキャンセルとか支払い不要とか 日付以外も入るので日付が入った場合のみ支払合計額に、 空白の時は支払い予定額に それ以外の場合はどこにも加算されないようにというのが希望です。 SUMIFなどを使って自分なりに関数を作ってみましたが イマイチ出来ませんでした。 よろしくお願いします。

  • 曜日別の平均を求める元データが毎日更新される時の計算式

    A列に日付、B列に曜日、CからE列に各品目の数量、F列に平均があります。 今日の日付以降は数値が空欄です。 この表を元に、曜日別の平均の表を作りたいのですが、今は =SUMIF($B$2:$B$[今日の日付までのセル番号],"月",$Z$2:$Z$[今日の日付までのセル番号]) =COUNTIF($B$2:$B$[今日の日付までのセル番号],"月") この二つの式から求めています。 この方法だと、毎日今日のデータを入力した後、範囲を更新しなければなりません。 他に簡単な方法はないでしょうか。

  • Excel 2列のデータを合計して1列にするには

    以下のような表1があります。 コード 摘要    収入     A    B    C    D    E    F 1  1月  1日   1月   2日   1月   3日 2    1    1    2    2    3    3 例えばAとBは1月1日のデータで、2列目には数値データが入っています。この場合1月1日の合計値は2です。 このシートを元にして     A     B     C 1 1月1日 1月2日 1月3日 2   2     4     6 上記のような表2を作成したいと思いますが、オートフィルのコピーでは1列ずつ合計されていくのでうまくいきませんでした。 表1の日付の表記は、1セルに「n月n日」となるよう変更することは都合上できません。 簡単に表が作れる方法があれば教えて下さい。よろしくお願いします。

  • Excelで特定の日付範囲のデータの合計を出すには

    初めて質問させていただきます。 さまざまなホームページ、掲示板などを巡ってみたのですが解決できなかったため お力を貸していただけたらと思います。 1シート目がこのようなデータ表になっているとします。  A    B     C   111 2011/4/30 2,000 125 2011/4/15 3,000 143 2011/4/30 2,000 166 2011/5/31 5,000 178 2011/5/29 3,000 このデータを使用して、2シート目には、各月の合計金額を表示したいのです。 2011年4月 7,000 2011年5月 8,000 こんな感じです。ちなみに、1シート目のB列の日付は一定でないため1日だけを指定することが できません。 そこで、以下のような関数を考えてみました。 =SUMIF(1シート目!$B$1:$B$1000,IF(TEXT(1シート目!B1,"yyyym")="20114",),1シート目!$C$4:$C$1000) 日付を月までに省略し、それで判断させるというものです(言い回しが下手ですみません)。 ちなみになぜ1000行目まで指定しているかというと、今後もデータは増えていくためです。 現在ここまで式を作り上げたものの、「0」が返ってきます・・・ どこが間違っているのか、もしくはもっといい式があるようでしたら 教えていただけたら幸いです。 よろしくおねがいいたします。

  • Excelで2列のキーワードからのデータを合計するには?

    A列に日付、B列に支店名、C列に商品名、D列に売上金額が売上ごとに入ってます。 ある支店の売上の合計にはSUMIF(支店名)を使っていますが、ある支店の(且つ)ある商品の売上の合計はどうやって計算すればいいのでしょうか?フィルターやピボットテーブルでなく関数を使いたいのですが。 初歩的な質問ですみませんがよろしくお願い致します。

  • A列 B列

       A列 B列  1  1 Aさん  2  2 Bさん  3    Aさん  4  1 Bさん 上記の表のような場合、Aさんの合計は、1です。 数字が入力されている件数は、1件です。 Bさんの合計は、3で、数字の入力されている件数は、2件あります。 このように、Aさんの合計および、数字が入力されている箇所の件数を抽出するには、 どのようなエクセルの式を入れるといいですか? 昨日から、何度もすみません‥(下矢印)宜しくお願いします。

  • 日付をカウントした後にその列の金額を合計する関数

    下記のような表があります。まずA列の10月の件数をカウントしたい。 次にカウントした(抽出した)もののB列の数字を合計したい。 件数をカウントするものはCOUTIF関数で出来たのですがそこで 抽出されたものを合計する関数がわかりません。ここでオートフィルタ を使用するものは検索できたのですが出来れば関数を使用して 合計値を出せればと思っています。 お分かりになる方がいらっしゃいましたらお教えください。 よろしくお願いいたします。   A    B 1 10/1 30 2 10/2 10  3 11/1 20 4 11/2 10

  • excel2000 ある列の項目名をカウントしその件数表示をする

    エクセルで表10行×5列の表があります。1列目にあるデータが入っております。その項目名をカウントし多い順に別の表にその項目名と件数を表示させたい。できるだけ自動的におこなうためにはどうすればよいでしょうか。 例 :ある表 1列 A B c B c A D E F B 結果 別の表 項目 件数 B   3 A   2 C   2 D   1 E   1 F   1

  • エクセルの関数

    A列に日付B列に金額が入っています。 C1とD1に日付を入力するセルをつくり C1の日からD1の日のB列金額の合計を出したい場合 どのような関数を使えば良いですか?SUMIFで出来ますか?

専門家に質問してみよう