- ベストアンサー
アクセスを用いてのデータ整理方法について
- 会社のデータ作りで困っています。アクセスを用いて行う作業だとは思うのですが、あまり知識がなくて困っています。
- 資料1には番号と果物が入力されており、範囲コードと参照する範囲が右の図に示されています。
- 範囲コードの区間コードの番号の範囲に応じて果物の数を出力するプログラムを作りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
本質問がアクセスによるものを期待しているのは認識してます。しかし ーー まずおすすめは、 アクセスでもエクセルでも、ピボット」テーブルでもと元データをだし、質問者がエクセルにシートなりに望みの表を作る(手作業)がよいのでは。 アクセスでクロス表もつかえるかも。 ーー またこの表の形式に拘って、そっくりのものを一発で出そうとすると、VBAなりの知識が必要でしょう。 質問の文章から推測して、多分VBAやアクセス、エクセル経験があまりないように思うので、下記のエクセルの関数でやる方法はいかがですか。参考にしてください。 例データ Sheet1 A1:B20に元データを作る。 1 みかん (空白行) 3 ぶどう 4 みかん 5 ぶどう 6 ぶどう 7 みかん 8 りんご 9 ぶどう 10 りんご 11 みかん (空白行) 13 りんご 14 ぶどう 15 ぶどう 16 みかん 17 りんご 18 ぶどう (空白行) 20 ぶどう ここでデータ行と番号は対応させる。番号が無い行は空白行にする。 Sheet2に A1:G6に、下記B4:G6を除いた部分を作成する (見出し的なものをあらかじめ作成) グループ 1 2 2 2 3 4 範囲 FROM 1 1 5 9 1 1 範囲 TO 5 3 7 10 7 9 みかん 2 1 1 0 3 3 ぶどう 2 1 2 1 3 4 りんご 0 0 0 1 0 1 B4に関数式 =COUNTIF(INDIRECT("Sheet1!B"&(Sheet2!B$2)):INDIRECT("Sheet1!B"&(Sheet2!B$3)),$A4) を入れて、第6行まで、そしてB4:B6を範囲指定して、式を複写する。 INDIRECT関数を使ってデータ範囲を、式複写に適したように、流動化している。 結果は上記のとおり。 質問データ例に疑問を持つ点があり、その点当方が適当にしているので、注意して下さい。 ーー 質問にはデータ数、リンゴなどの数(バラエティ)のオーダー(概数、百か千か万か)、などをかいておくべきと思う。やり方に影響するから。 ーー エクセルーアクセス相互間は、簡単にデータをやり取りできるから、上記の回答になったもの。やり方を知らなければ勉強してください。 番号データのない行は空白にする方法は、多くなければ手作業で、多数ならVBAでやることになるが、この多少については質問に書いてない。
その他の回答 (2)
- naoto0216
- ベストアンサー率46% (183/391)
ちょっと図が見づらいですが、資料2は範囲コード1とか2は無い ですよね?2Eとか3Sとか書かれているようですけど。 あと、「区間コード」とは何のことでしょうか。 #1さんが回答されているように、最終的な結果がどのような イメージなのか分かり辛いです。
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは 範囲2Eが二つありますね。 左側の範囲2Eは範囲1Eの間違いですよね? 資料1、2からどのような結果になればいいのか、やはり図で添付した 方がいいと思います。 アクセスでなくてもExcelの方が融通が効くと思うのですが、どうでしょうか? また、処理元の資料1、2のデータの作り方から変更するのは無理なのでしょうか? データベース処理するには不向きなデータかと思います。
お礼
ありがとうございます。 ご指摘いただいた箇所は記入ミスでした。 エクセルのほうがそういった作業には適しているのですね。 次からはもっとしっかりとした図を添付できるようにしたいと思います。 ご指摘ありがとうございました。
お礼
ご丁寧に解説ありがとうございました。 指示いただいたやり方で実行してみたところ形にすることができました。 INDIRECT関数は使用したことがなかったので勉強になりました。 また、今回のことでVBAやエクセルアクセスの勉強を行っていかないといけないということを痛感しました。 今回は本当にありがとうございました。