• 締切済み

Excelで、条件にあったシートのデータのみを3D

1ヶ月分の請求書を1つのファイル(Book)に作成し、保存しています。 1シートごとに1請求書を作成しているのですが、最後のシートに、1ヶ月分の集計をまとめたものを作成しようと思い、全部の売上合計を、3D集計で作成しました。 その他、各会社ごと(会社名で検索)の売上げや、売れた商品ごと(商品名で検索)の集計なども作成できればと思っているのですが、思うようにいきません。 どのような式を作れば、うまくいくでしょうか? また、1ヶ月分の集計を出している部分も、シート数が毎回変わるため、[Start]と[End]というシートををわざわざ作成し、その中に請求書シートを作成するようにしています。 これももっと良い方法があればぜひ教えてください。 どうぞよろしくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

以前の質問に対し同じことを言ったのですが、同じようなことを質問している。エクセルで合計や平均やその他を抜き出したりしたいときは、出来れば1つのシートに「テーブル形式」(やリスト形式)で保存するために仕組みを変えることです。 テーブル形式(2007以後)やリスト形式(-2003)はWEBで照会して勉強してください。 実はエクセルの気の利いたデータ処理は(関数も含め)、ほとんどの機能がこれを前提にしてます。 請求書のイメージ状態にして多数シートにしてしまうと、エクセルでは処理が大変になります。加算1つをとっても、集計するセルの位置が請求書の中でバラバラになったりして、手に負えなくなります。式の複写もままならなくなります。 質問者はシステム的なものを作った経験が無いのに、あれこれやをやろうとするからです。エクセルでは気の利いたことは出来ません。だからエクセルであれこれやっている人を聞くと、間違った道具選択で背伸びしているなあと思います。 こういう質問をするということは、エクセルの経験を十分積んで、壁に当たって、エクセルの限界に、まだ気づいてない証拠です。 ーー 質問者がやろうとしていることを自然にするには、データベースソフトなどでやるのが普通です。 もっと言うならば、お金を出して(エクセルの延長ではなくて)専門家にやってもらう分野と思います。素人が手を出せるのには限りがあります。 そうしないなら質問者なりがVBAでも出来るようになることです。 ーー 本件について言えば、 (1)データの集約は1シートに行い、印刷する請求書はその都度派生物と考えるべきです(計数集計などには使わない)。 計数集計などは元のデータシート(出来れば1月分など1つ)で関数を使ってでも処理すべきです。 ーー (2)印刷する請求書は、元データから1ページ分を作成し、印刷する時のその場限りに、します。 次ページの印刷が前ページのセル範囲に設定します。 但し印刷の指示をその都度出すには(セル範囲をクリアするには)1行ずつだけのVBAコードが最低必要ですが。 ーー Googleで「imogasi 請求書 折衷」で照会すれば、沢山回答記事があるのですが、メイン解説がドレだったか判からなくなっている。興味あれば捜してみて。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

そういうことが出来る計算方法はありません。 配列数式でゴリゴリやる手も無いではありませんが,むしろマクロを使って自作関数(ユーザー定義関数)を作ってしまった方が簡単です。 サンプル手順: ブックを開く ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける public function mySumif(a as range,b as string,c as string,d as variant,e as range)  dim w as worksheet  dim f as boolean  application.volatile  for each w in worksheets   if w.name = b then f = true   if f then    if w.range(a,address) = d then     mysumif = mysumif + w.range(e.address)    end if   end if   if w.name = c then exit for  next end function ファイルメニューから終了してエクセルに戻る 使い方: =mysumif(条件セル,開始シート名,終了シート名,条件値,合計セル) 使用例 =mysumif(A1,"Sheet2","Sheet13","abd社",E1) 左から順に見てシート2(と言う名前のシート)からシート13までにあるシートで,A1セルがabc社だったときにE1を合計します。「Start」シートと「End」シートに挟んでも勿論構いません。 #一ヶ月分の仕事が終わったら,ブックを複製し,請求書シートを削除してまた新しい月の集計を行うこと #補足 必要に応じて,ご利用のエクセルのバージョンに応じた方法でマクロを有効にすること 必要に応じて,アドインなどにして利用すると良い それぞれの具体的なやり方が調べても判らない時は,ご利用のエクセルのバージョンを明記して別途新しいご相談を投稿し問題を解決してから,作業を行ってください。 #補足 何か「違うこと」がやりたくなったら,また違うマクロを新たに書き起こすことになります。もしそういう事を思いついたときは,「ついでにお願い」は止めて(そういうご相談者さんがすごく多いので)また新たなご質問として,「こういう状況でこういう事がしたい」とキチンと書き起こして,ご相談を投稿してみてください。

関連するQ&A

  • エクセル 複数シートにまたがるデータの抽出

    複数シートからのデータ抽出についていくつか拝見いたしましたが 知識が足らず、操作できませんでした。 下記のような抽出が可能であれば、ご教授いただけたらと思います。 なお、VBやマクロ等は使用したことは、ほぼありません。 シートが複数あり、またそのシートが増えていく可能性があります。 シート名→「start」「佐藤」「山本」「end」「集計1」「集計2」ととりあえず作成。 (「集計1」にて別のデータ合計をとるため、「start」「end」シートを作成しました。  なお、佐藤~山本のシートは同じ書式ですが、シート名が変わる可能性も高い。  今回したいのは「集計2」においてです) 「佐藤」シート   A   B   C   D 01 佐藤 02 \  月曜 火曜 水曜 03 6:00  1   0.5   1 04 7:00  1    1 05 ~ 18 21:00 「山本」シート   A   B   C   D 01 山本 02 \  月曜 火曜 水曜 03 6:00 04 7:00  1   1   1 05 ~ 18 21:00  1   1   1 「集計2(曜日毎で、月曜)」シート   A   B   C   D 01 月曜 02 03 6:00 佐藤 04 7:00 佐藤 山本 05 ~ 18 21:00 山本 「集計2(曜日毎で、火曜)」シート   A   B   C   D 01 火曜 02 03 6:00 佐藤 04 7:00 山本 05 ~ 18 21:00 山本 できれば、名前(シート)が非常にたくさんになる可能性があるので 集計2に出てくる名前は、詰めてが理想です。 また、できればあまり都度の細かい作業がなければありがたいです。 (利用者で、できない可能性が高い) よろしくお願い申し上げます。

  • エクセル シート間の集計について

    エクセル(2007)で複数のシートを集計したいです。 行には顧客名、列には売上げやコストなどの数字が入っています。 1月~12月のシートがあり、集計シートにはその合計数字が入るようにします。 月によって顧客名が増えたり減ったりするので、各シートの同じセルに同じ顧客名があるわけではありません。 こういう場合、集計することができるのでしょうか? どのような手順でやればよいのでしょうか?

  • Excel、特定のシートを残して、表示・非表示

    1.特定のシートを残して、残りを全て非表示にする方法と 2.表示するときにシート名の頭文字2文字を抽出して、 それに当てはまらないものと特定のシートのみ表示する方法はあるでしょうか? 下記のようなブックになっています。 合計 04月データ 04月集計 05月データ 05月集計 ・・・以下、03月まで続く。 このときに、 1.合計シートのみ表示したい。  合計以外のシートを選んで非表示にし、マクロに記録する方法はわかったのですが、  もっと(記述が)シンプルな方法があれば、教えてください。  全く支障はないのですが、あるのなら知りたいので。 Sub 非表示() Sheets(Array("04月データ", "04月集計", "05月データ", "05月集計")).Select    <↑実際には、ここが12か月分になります。>   Sheets("04月データ").Activate ActiveWindow.SelectedSheets.Visible = False End Sub 2.04とボックス等に入力すると、  合計と04月データ、04月集計を表示させたい。  5月の場合は、05で抽出できるようにしたい。 いろいろ検索しましたが、ありそうでなかったので、 よろしくお願いします。

  • エクセルで各シートの該当項目を集計

    データが入ったシートが全部で12枚あります。 各シートは月ごとの商品の売上データです。 A列に商品コード、B列に商品名、C列に数量、D列に売上金額です。 ただし、各シートに出てくる商品は12枚全て同じではありません。商品により売上がないものはその月のシートには商品名も記載はありません。 これをあらたに13枚目のシートを挿入し、すべての商品の売上合計を出したいのです。 商品コードをキーに各月ごとにVLOOKUPで検索し、無ければ(N/Aエラーなら)0を加算という方法も考えましたが、もっといい方法はないかと質問します。 よろしくお願いします。

  • エクセルで別シートから内訳を反映させる方法。

    エクセルで簡易な合計請求書を作成しました。 しかし別シートから内訳を引っ張ってくる方法がわかりません。 知恵をお貸しください。 下記の画像で上画面のシートが合計請求書のフォームになります。 下画面の別シートに売上が入力しておりその入力した売上を店舗ごとに 集計して表示されるような関数が上シートの金額部分に入っています。 上のシートの緑色部分にはマクロが登録されており押すと金額と店舗の住所が 合計請求書のフォームに反映されるようになっております。 ここで緑のボタンを押した時に住所と一緒にその合計請求書のフォームの下に金額の内訳が入るように関数を入れたいのですがそういった関数はありますでしょうか? 分かり辛い説明で申し訳ありません。 宜しくお願いいたします。

  • Excel2000で、各シートの数値を集計したい

    お世話になります。 大変初歩的な質問で恐縮なのですが、この手の内容はどう検索したらよいか分からず、質問させて頂きました。 現在経費帳を作成しております。 月毎にシートを作り、更にそれらを集計するためのシートをもう一枚別に用意した作りです。 そこで、ご質問をさせていただきたいのですが、月毎の売上を集計用のシートで全部合算して表示する場合、どのようにすればよいでしょうか。 例えば、C:33に売上の合計数値が入るとします。 各シートのC:33にある数値を集計用のシートで年合計として合算して確認したいのです。 シート内での合計の仕方はわかるのですが、シートをまたいだ時に、どうやってその数字を参照したらよいか分からず困っております。 アドバイスを頂ければ嬉しいです。 よろしくお願いいたします。

  • Excelでワークシート作成

    自営で飲食店をしています。 Excel2000で一枚ずつ伝票を入力し(ワークシートに商品コード入力で商品名、金額がでるようにしている)1ヶ月ごとに商品別合計を出しています。 が、とても原始的なやり方で作業しています。1ヶ月分の伝票を入力後、ソート&集計していますので、入力段階で8000行ほど使い、集計に恐ろしく時間がががっています。 (居酒屋なので、一組のお客様一枚の伝票でも平均10品目以上記入しています、これが一日数十枚×27日・・・。もちろん手書き伝票です。(涙)) そこで質問です。 商品コードを入力するだけで、商品名で数量が次々と累計されていく(商品コードはEnter後消え、またそこに入力する)・・・・という夢のようなワークシート(関数?)を作りたいのですが、ド素人には無理でしょうか?(ワタクシ、超初心者です) もし、作成は無理で、ソフトを使った方が良い場合、どんなソフトを購入すれば良いでしょうか? ご存知の方、よろしくお願いします。

  • エクセル。複数のシートを使っての複雑な集計のやり方

    エクセル。複数のシートを使っての複雑な集計のやり方を教えていただきたいです。 縦は上から150期から155期まで、横は4月から3月まで(12カ月)でそれぞれ売り上げ額が入っています。 その下には各月の粗利益%が入っています。このような表が入った計10シートが同じファイル内にあることとします。 この10シートの集計をしたいのです。 私はよくわからなくって、すべてひとつひとつシートを選んではクリックしながらとても長い数式を入れていました。これでもできたのですが、 いろいろネットで調べたら、サム関数を使ってシートを一気に選択して(コントロールを押しながらシートを選択して)コピー出来る事を知りました。 それはなんとなくわかったのですが、売り上げの下にある、「粗利益〇%」の集計もしたいのですが、いまいち簡単なやり方がわかりません。 粗利益の合計を出すには→各月の売り上げ×その月の粗利益を、売り上げで割ると出るので、 それを地道に、たとえば155期4月の粗利益の集計を出す場合は、(1)シートの4月の売り上げ×粗利益+(2)シートの4月の売り上げ×粗利益+・・・(とこれが10シート続きます)これを、(1)シートの4月売上+(2)シートの4月売上+・・・で割るという数式になります。 10シートなので、相当長い数式になってしまいます。 これができたら他にひとつひとつコピーしていくというかんじでした。 上記のようなサム関数などでシートをまとめて集計するようなやり方ってないのでしょうか? 掛けたものを足してそれをまた割ってという場合は、簡単に集計するのは難しいのでしょうか? もっと簡単なやり方があったら教えていただきたいです。 わかりにくくすみませんが、わかる方、教えていただきたいです。

  • excel 2つのシートのデータを同じ順番にしたい。

    こんにちわ。仕事の見積り作成で困っているのですが、現在シート1には商品、値段、過去半年間の売り上げ数量の順に400品目ほど見積りを作成しています。シート2には商品、値段、過去1年間の売り上げ数量の順に450品目ほど見積りを作成しています。 シート1 商品 値段 数量      a     100     1       b      150    2       d      75     10 シート2 商品 値段 数量       a     130     2       b     200     2         c     400    1       d     100     18 このように現在なっています。シート2をシート1と同じ商品順に並び替えシート1に入っていない商品は除外したいのです。値段はシート2の値段を使い、数量はシート1のものを使いたいので並び替え後に貼り付けて訂正しようと思うのですが・・・。 並び替えの方法を教えてください。よろしくお願いいたします。     

  • Excelのデータ集計方法について

    ExcelでA列に30種類の中からランダムに商品名が(重複しています)B列~D列にその商品の売上日、伝票番号、請求額が入力されています。 やりたいことは商品名ごとに売上日、伝票番号、請求額を別の請求書フォーマットに内訳として転記したいのです。 (別シートに作成してあります) 現在はソートを利用して、あとは手作業でコピーして貼り付けをしているのですがそれを自動でできる方法はあるでしょうか。 ソートする商品名は月毎でばらばらなので簡単なマクロだとどうしてもソートする部分が手動になってしまって困っています。 ピポットだと集計してしまうので内訳すべての転記ができません。 本来ならAccess等を使用するべきだとは思うのですがExcelでなんとかできないものかと皆様のお知恵を貸して下さい。 よろしくお願いします。

専門家に質問してみよう