dポイントプレゼントキャンペーン実施中!

エクセルでの入力の時に
シート1では全ての営業所をひとまとめにして入力
シート2以降では営業所別にシートに振り分ける方法がわかりません。

シート1(入力するシート)
1 営業所名  支出金額  項目
2 群馬支部  11980  雑費
3 長野支部  12080  交通費
4 群馬支部  19800  接待交際費
5 新潟支部  19800  接待交際費

シート2(群馬支部)
1 営業所名 支出金額 項目
2 群馬支部 11980 雑費
4 群馬支部 19800 接待交際費

入力する場所はシート1のみで
シート2、3は営業部ごとの項目になっていて
シート1に入力すると自動で各シートに
振り分けられるようにしたいのです。

これを解決できる方法とは、どのような方法があり
そしてどうやれば出来るのでしょうか?

お時間あるときにご返答頂けると嬉しいです。
どうぞよろしくお願い致します。

A 回答 (3件)

関数のみで行う場合です。



シート1(入力するシート)
 A  B       C       D
1 No. 営業所名  支出金額  項目
2 1 群馬支部   11980    雑費
3 2 長野支部   12080    交通費
4 3 群馬支部   19800    接待交際費
5 4 新潟支部   19800    接待交際費

VLOOKUP関数で処理するのでA列にNo.を入れてください。
ちなみにA2以降のA列に
  =ROW()-MATCH("No.",A:A,0)
と入れると並べ替えをしても行番号が変わりません。

シート2(群馬支部)
  A B        C      D       E
1   営業所名 データ数 総データ数
2   群馬支部   2      4
3 
4                           行番号
5 No. 営業所名 支出金額 項目       0
6  1  群馬支部  11980   雑費       1
7  2  群馬支部  19800   接待交際費  3
8  3                          #N/A

各セルに次の関数を入れます。
B2:営業所名
   ここをリスト化すると1枚のシートで全営業所が計算できます。
C2:=COUNTIF(Sheet1!B:B,A2)
   群馬支部のデータ数を求める
D2:=MAX(Sheet1!A:A) or =COUNTA(Sheet1!B:B)-1
   総データ数を求める
D5:0
D6:=MATCH($A$2,INDIRECT("Sheet1!$B$"&TEXT(E5+2,"0")&":B"&TEXT($C$2+1,"0")),0)+E5
   非常に面倒な式ですが、シート1における営業所名の出現行を
   MATCH関数で出しています。単純に組むと一番始めしか出て来な
   いので次の行では前行で見つけたシート1での出現行の次から
   検査する必要があります。
   そのためINDIRECT関数で可変する範囲を設定しています。
A6:連番(シート1と同じ)
B6:=IF(ISERROR($E6),"",VLOOKUP($E6,Sheet1!$A:$D,2,FALSE))
   VLOOKUP関数で必要データを取り出します。
   データがなくなるとE列の行番号がエラーになるので、そこは
   表示しない(空白)ためのif文を加えてあります。
   後は必要行コピーすれば完成です。

 
    • good
    • 2

関数では難しい問題です。


「指定した(例えば群馬支部を1つ指定して)、該当のものを別シートに出す。」でさえ関数では難しい。
データの該当数で、どこの(シートの)行に収まるか、変動するタイプの課題は関数では難しい。関数式を受けるセルに入れないといけないが、それが浮動するのですから。余程の工夫が要ります。
何度も毎日のように同じ質問がでて、繰り返し同じことを言っている。
この質問の新しい点は、各シートへ全データを振り分けることです。
各シートにそれぞれ作業列を持てば、「imogasi方式」でできそう。
「imogasi方式」はGoogleなどで、照会すればこのコーナーの質問と回答が出てくる。他の方の別の方法の回答も出てくる。
その中に関数だけで、作業列を使わない式が出ているものがある。
それを理解できれば使ったら。
ーー
すっきりやるのは、1日分とかを入力が終った機会にVBAで振り分ける
方法です。VBAをできないで、データを整理するレポート以外の、業務(取引)関連の書類・表を作るのは難しい。
エクセルは基本は手操作の連続で目的を達成するものです。
フィルタ(別シートに結果を出せない)ー該当シートにコピー張り付けなどしか方法はないのです。
ーー
VBAだが
昨日答えた
http://okwave.jp/qa3457447.html
はやや似ているところがある。
    • good
    • 2
この回答へのお礼

ありがとうございました!
そうですか、これを実現させるのは結構手間がかかるんですね。

他にいい解決方法を見つけ、上と話し合いたいと思います。
皆様、どうもありがとう御座いました!

お礼日時:2007/10/26 10:37

支部ごとのシートを作るよりも、オートフィルターを使うのが、ベターでは?


(支部が増えればその数だけシートを作らなければならないのと
それらに、埋め込む関数式でデータが無駄に増えます)

オートフィルターの解説は、下記参照
www.kenzo30.com/ex_kisosyo/ex_ks_syokyu9_2.htm
    • good
    • 3
この回答へのお礼

そういう風に説明したんですが
上の指示でシート分けして欲しいとの事で・・。

すこし補足です。
各シートの試用期間を明記して無かったです。


シート1(入力するシート)
※ここは毎月新しいシートに変えます。
1 営業所名  支出金額  項目
2 群馬支部  11980  雑費
3 長野支部  12080  交通費
4 群馬支部  19800  接待交際費
5 新潟支部  19800  接待交際費


シート2(群馬支部)
※ここは1年間同じシートを使います。
1 営業所名 支出金額 項目
2 群馬支部 11980 雑費
4 群馬支部 19800 接待交際費


すこし複雑になってしまってもいいので
これを解決できる方法を知っていましたら
是非教えて欲しいです!

あつかましい質問で大変申し訳ありませんが
どうぞよろしくお願い致します。

お礼日時:2007/10/25 10:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A