• ベストアンサー

Excelでの表作成

私はOLです。 今現在excelで出納帳を作成しています。 この出納帳は今まで使用してきた表らしいので、あまり大幅に表を加工したくはないのですが、あまりにもめんどくさい表だったので関数を入れてしまえとなったのですが、どの関数を活用すればいいのかがわかりません。 出納帳は下記のようになってます。 ・シートは「原本」「□□費」「○○費」「△△費」というような感じでわかれています。「原本」はお金の流れ(出金・入金)を費用の種類関係なく一覧にまとめている表です。それを個々にわけたのが「原本」以外のシートです。「原本」で全ての費用の流れを入力していくつもりです。 ・□□費=1、○○費=2、△△費=3、というような分類わけをしています。 簡単にわかりづらくまとめてしまいましたが上記のような表になっています。 それをふまえた上で下記ができる関数を探しています。 ・原本で入力した各費用のデータをそれぞれのシートにもっていきたい ・各費用のシートにもっていったデータは日付の昇順で表示されていく 本当にわかりづらい質問内容となっていますが、ご回答のほうをいただいきたいです。

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

  • ベストアンサー
  • Pochi09
  • ベストアンサー率75% (42/56)
回答No.3

データ-外部データ取り込みにあるMicrosoftQueryを利用したことは無いですか? 原本シートの表の範囲に名前を付ける必要がありますが、科目分類を指定して、並び順を日付指定してやることで簡単に希望がかないそうに思います。 手順としては 1)原本シートの表範囲に名前を付ける(挿入-名前-定義で名付けます) 2)別のシートで   データ-外部データ取込み-新しいデータベースクエリ   を選択 3)データベースをExcelFile指定 4)ブックの選択のデータベース名で自ファイルを指定 5)1で名付けた名前を選択して「>」記号でクエリの列指定 6)データの抽出を   科目分類を指定している列名   「=」   「科目分類コード」(例:1) 7)最優先されるキーを「日付」昇順 8)エクセルにデータを返す これで、分類1の表がそのシートに日付順で出てきます。 同じ手順で分類2・3…とやっていけばOKです。 原本データを更新した時は、各シートで、データを持ってきてる範囲 を選択して、「!」データ更新をしてやれば、データが更新されます。 気をつけるべき点は、原本データでうっかり名前付き範囲以外に入力しないように気をつけることでしょう。 (Office2003でのメニューや表記で書いています。2007だとメニューの場所が違うはずなので、ヘルプで探して下さい)

annkomochi
質問者

補足

細かな回答ありがとうございます! ちなみにmicrosoftqueryは利用したことございませんw そしてソフトももってないんです↓↓ やっぱりこれってソフトを入手してインストールしなきゃだめですよね?

その他の回答 (3)

  • Pochi09
  • ベストアンサー率75% (42/56)
回答No.4

annkomochiさん、何か新しく購入する必要はありません。 MicrosoftQuery(多分今も同じ名前だったと思いますが)は、Officeの付属です。 もしかしたら追加インストールの範囲だったかもしれません。 データ-外部データ取込み-新しいデータベースクエリ というのは、みつかりませんか?

annkomochi
質問者

補足

やってみたんですが。。。 正常にインストールされませんでした。。。↓↓ すいません↓↓

回答No.2

関数も何も、オートフィルタとコピペで十分かな? それか、ピボットテーブルのマクロ化。 しかし、ピポットテーブルだと合計値やデータ個数で返してしまうから、難しいか...。 Vlookupも同じだねー。

annkomochi
質問者

お礼

ご意見ありがとうございました!^^

回答No.1

関数よりピボットテーブルを使った方が良いような気がしますが、関数だと例えば以下のような感じですかね。 (作業用セルが多くなるので使いづらいかもしれません) A列に日付、B列に費目、C列に金額が書かれていて、データが100行(2~101)あるとします。 D2 =IF(ISERR(RANK(G2,G$2:G$101,TRUE)),"",RANK(G2,G$2:G$101,TRUE)) E2 =IF(ISERR(RANK(H2,H$2:H$101,TRUE)),"",RANK(H2,H$2:H$101,TRUE)) F2 =IF(ISERR(RANK(I2,I$2:I$101,TRUE)),"",RANK(I2,I$2:I$101,TRUE)) G2 =IF(B2=1,A2,"") H2 =IF(B2=2,A2,"") I2 =IF(B2=3,A2,"") J2 =IF(B2=1,C2,"") K2 =IF(B2=2,C2,"") L2 =IF(B2=3,C2,"") これをオートフィル等で101行目までコピー。 以上を「原本」シートに追加。 □□費シートについて、A列が日付、B列が金額とします。 A2 =VLOOKUP(ROW()-1,原本!D$2:J$101,4,FALSE) B2 =VLOOKUP(ROW()-1,原本!D$2:J$101,7,FALSE) これを下方にコピー。 A2 =VLOOKUP(ROW()-1,原本!E$2:K$101,4,FALSE) B2 =VLOOKUP(ROW()-1,原本!E$2:K$101,7,FALSE) △△費シートは A2 =VLOOKUP(ROW()-1,原本!F$2:L$101,4,FALSE) B2 =VLOOKUP(ROW()-1,原本!F$2:L$101,7,FALSE) それぞれ下方にコピーすれば完成。 日付はデフォルトだとシリアル値になっていると思われますので、表示形式等でうまく設定してやってください。

annkomochi
質問者

お礼

細かく関数を入れていただきありがとうございました! この中に私の見たことない関数が。。。w さっそくチャレンジしてみます! ピボットテーブルは学生の時以来活用しておらず。。。 こちらも思い出しながら試しに作成してみますw 貴重な回答ありがとうございました!

関連するQ&A

  • エクセル 表の作る方

    現在、エクセルの表を作成しています。 「シート1」には (例) 日時 科目 入金 出金 残高 1/1 負担金 10    10 ・・ ・・    ・・ ・・ という項目別に上から順に入力し、 「シート2」には、科目別の金額集計表を作りたいと思っています。 (例)  科目  金額  負担金 10 という形です。 そこで、「シート1」が何行になるか分からないのですが、 「シート2」で金額を集計する場合、Sumif関数を使ってあらかじめ範囲を指定しておく必要があると思いますが、「シート1」に入力すると範囲が自動的に変更される方法はあるのでしょうか? (例)日時 科目 入金 出金 残高 1/1 負担金 10    10 ・・ ・・    ・・ ・・ ※当初は範囲を2行目までの選択であったが、3行目を入力すると範囲が3行目に自動的に変る。

  • エクセルを使って当番表を作成したいのですが・・・

     関数を使った当番表があるのですが、改善しようと考えています。現状の当番表を作成したのは私ではなく、エクセルのレベルは決して高くありません。よい方法を教えていただければと思います。 現状・・・一つのシートに1ヶ月単位の当番表を作成しています。そのシートをもとに1日単位の当番表が出力できるように関数VLOOKUPを使用し、別のシートで1日単位の当番表を出力できるようになっています。当番の電話番号一覧のシートがあるのですが、現在1日単位の当番表に手書きで当番の番号を記入しています。  ・使用している関数=VLOOKUP($Y$8,1ヶ月当番表!:$AM$32,23,FALSE)  ※Y8に日にち(1.2.・・・31)を入力するとその日の当番が反映されるようになっています。 希望・・・1日単位の当番表に関数を使って個人の電話番号データが反映されるように改善したいと考えています。  説明が不十分かと思いますが、よろしくお願いします。

  • エクセルでシート10の表からシート1から9の表に数値を自動抽出したい

    エクセルでシート10の表からシート1から9の表に数値を自動抽出したいのですが、 シート10 TP店 TW店 NP店 TM店 9 8 4 2 シート1 売上 TP店 ?? シート2 売上 TW店 ?? TP店売上9 TW店売上8 NP店売上4 TM店売上2 です かなりデータが多く手作業ではなく関数で一発入力したいのです。つまりシート1から10までありシート1はTP店、シート2はTW店の個々の売上データが入っています。シート10に全体の売上データが入っていて、シート10を参照してシート一つずつにアナログで=Sheet1!A1をいれていく、又はコピーすると大変なのでシート1に入れる関数と他のシートの関数をすべて同じにしたいのです。で自動で店の売上を入力するような関数ありますか 以前質問した際に =IF($B$1="","",INDEX(Sheet21!$B$2:$E$5,MATCH($A2,$A$2:$A$4,0),MATCH(B$1,Sheet21!$B$1:$F$1,0))) と答えをいただきましたが、さっぱりわかりません。わかりやすく説明していただけるとありがたいです。

  • エクセル シート作成ボタン作成

    原本のシートがありA1~K73までありグラフや表があります 使用時に原本シートにデータ入力をし、 入力が終わった時に保存ボタンを押すとシート名を入力する画面が 出てきて入力後OKを押すと、自動的にシートが作成され 原本シートは最初のなにも書かれてない原本シートに戻すボタンを作りたいのですが 前回聞いたときに作成できたのですが 新たにグラフを乗せたときにエラーが出てきてしまったため 再度投稿しました。 前回のプログラム Sub 保存() Dim MySheetName As Variant MySheetName = InputBox("シート名を入力してください") If MySheetName = "" Then Exit Sub Sheets("原本2").Copy After:=Sheets(Worksheets.Count) ActiveSheet.Name = MySheetName Sheets("原本").Range("A1:K73").Copy Sheets("原本").Range("A1") End Sub これで実行するとシートは自動作成できるのですが Sheets("原本").Range("A1:K73").Copy Sheets("原本").Range("A1") この部分で黄色メッセージがでます いい方法はないでしょうか?

  • エクセルの表作成と集計についておしえてください

    宜しくお願いします。 個人のペットショップで動物たちを管理する表を引き継ぎました。 その表はエクセルで作ってあります。 ・シート1に全ての動物情報が入力してある表があります。 上から、犬の各犬種別に分けてある表が 1つ目の犬種の表があり その犬種の合計 1行空けてあって 2つ目の犬種の表があり その犬種の合計 1行空けてあって と言う感じでずらーっと1枚のシートに入力してあります。 ・その表に新しく入荷した動物を行を追加しながら入力し 売れた動物を削除してと言う感じで1週おきに作り直しています。 シート2~シート12 ・シート1に入力してある犬種別に各シートが作成してあり 内容はシート1に入力してある犬種別にコピーしてここに張り付けています。 上記のシート1の全犬種のデータと 各犬種の頭数が合計してあるシート全体を印刷したものと シート2~シート12の各犬種別に分けてあるシートを印刷して 2週に1回オーナーにFaxするシステムになっています。 ここからが質問なのですが シート1に各犬種ごとに追加したり削除したりするのを 今は行の追加や削除をして作っているのですが もっと楽にできる方法や、関数、その他のやり方などありますか? アクセスは入ってなくエクセルしか使えないのでエクセルを使用した方法でお願いします。 あとシート1からシート2~シート12の各シートへコピーして貼り付けしているのですが もっと簡単にシート1から各シートに取り出していく方法はありませんか? 今週の火曜日にまたオーナーへの提出日が来ますのでもっとやりやすく作り直したいので アドバイスをお願いします。 文章でうまく説明できていないのでご質問いただけましたら追加でお話します。 どうぞよろしくお願いします。

  • Excelの sheet1 に、下記の様な表を作成しておいて

    Excelの sheet1 に、下記の様な表を作成しておいて    A    B    C  1  東京   1   100 2  東京   2   200 3  千葉   1   300 4  千葉   2   400 sheet2 に、下記の様な入力をした場合    A    B    C  1  県名  重量  単価 2  東京   2 3  千葉   2 東京のC欄には 200 ・ 千葉のC欄には 400 と、単価が表示されるようにするには、 sheet2 のC欄にはどのような関数を入れればよろしいでしょうか? 関数については素人です。 ご存じの方、何とぞ宜しくお願いします。

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • excelの表について

    エクセルの表について質問です。 文章と表が入った資料を作りたいのですが、次の点がよくわかりません。 1.文章を入れたいのですが、改行キーを入力すると、そのセルの入力は完了となるのでしょうか。1つのセルを「ここは文章」と認識させて、改行の含まれる文章を入力することはできないのでしょうか。 改行入りの文章を作る場合、やり方としてはセルをどんどん下に増やしていくということでしょうか。 2.1つのシートに複数のフォーマットの表を挿入することはできますか。 例えば、文章、表1、文章、表2……という形で、表1は今年度の出納、表2は顧客データのような形で、表のフォーマットが異なっているものをつくることは可能ですか。セルの形式が変わってしまうので無理なのかなと思いますが、できると便利なので……。 普段ワードを使っているので、エクセルのセルについての把握がよくできていません。よろしくお願いいたします。

  • エクセル2003で表を作成し、ある項目だけ抽出する方法

    エクセル2003で、出納帳を作成しています。 当然出納帳ですから、各セルには関数が入力されています。列がF列まで、行は永久に下まである表です。 B列に勘定科目として見出しをつけています。売り上げ、備品、出張費等10項目くらいあります。その項目を、1項目分の行すべて抽出し、別の場所に移動(同じ場所でもいいのですが)し、さらに残高、入金、出金欄をその抽出した行のみで再計算をする、というものです。 可能でしょうか?? オートフィルですと、きれいに項目別で抽出されるのですが、式の再計算まではしてくれません。その項目での入出金、残高を計算、表示する方法を教えてください。 よろしくお願いします。

  • エクセル 表計算の作成について

    はじめまして ご教授頂ければ幸いです。 今、エクセルを使い表計算を行っています。 おおよそ 表計算(基本的なところ)の作り方は分かるつもりですが 下記のやり方についてご教授頂ければ幸いです。 ■内容及びやりたい事 毎日のデータ(体重変化)をインプットをしたいです。 今までは、表の中に直接(その日のセルに)に入力しておりました。 左のセルに日付け、右のセルに体重入力。 そこで、隣の別シートに入力だけの画面を用意したいのです。 常に毎日 その入力シートの同じ入力部にデータを入れます。 その、毎日のデータが次のシートのその日月のセルの隣のセルにリンクされる様に したいと考えております。 たぶん、いろいろなエクセルを使ったアプリがこんな感じで出来ていますので 機能はあると思いますが、発見できませんでした。もう少し継続しても調べてみます。 この辺を教えて頂ければ嬉しい限りです。また、参考資料になりますWEBサイトをご紹介 して頂いても結構です。 ※尚、PCの環境は Windows 7 64bit エクセルは2007になります。 以上 宜しくお願い致します。