• ベストアンサー

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