• ベストアンサー

エクセル入力で項目別にシートに振り分ける方法を教えてください!

エクセルでの入力の時に シート1では全ての営業所をひとまとめにして入力 シート2以降では営業所別にシートに振り分ける方法がわかりません。 シート1(入力するシート) 1 営業所名  支出金額  項目 2 群馬支部  11980  雑費 3 長野支部  12080  交通費 4 群馬支部  19800  接待交際費 5 新潟支部  19800  接待交際費 シート2(群馬支部) 1 営業所名 支出金額 項目 2 群馬支部 11980 雑費 4 群馬支部 19800 接待交際費 入力する場所はシート1のみで シート2、3は営業部ごとの項目になっていて シート1に入力すると自動で各シートに 振り分けられるようにしたいのです。 これを解決できる方法とは、どのような方法があり そしてどうやれば出来るのでしょうか? お時間あるときにご返答頂けると嬉しいです。 どうぞよろしくお願い致します。

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

  • ベストアンサー
回答No.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文を加えてあります。    後は必要行コピーすれば完成です。  

その他の回答 (2)

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

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

noname#103396
質問者

お礼

ありがとうございました! そうですか、これを実現させるのは結構手間がかかるんですね。 他にいい解決方法を見つけ、上と話し合いたいと思います。 皆様、どうもありがとう御座いました!

  • redowl
  • ベストアンサー率43% (2140/4926)
回答No.1

支部ごとのシートを作るよりも、オートフィルターを使うのが、ベターでは? (支部が増えればその数だけシートを作らなければならないのと それらに、埋め込む関数式でデータが無駄に増えます) オートフィルターの解説は、下記参照 www.kenzo30.com/ex_kisosyo/ex_ks_syokyu9_2.htm

noname#103396
質問者

お礼

そういう風に説明したんですが 上の指示でシート分けして欲しいとの事で・・。 すこし補足です。 各シートの試用期間を明記して無かったです。 シート1(入力するシート) ※ここは毎月新しいシートに変えます。 1 営業所名  支出金額  項目 2 群馬支部  11980  雑費 3 長野支部  12080  交通費 4 群馬支部  19800  接待交際費 5 新潟支部  19800  接待交際費 シート2(群馬支部) ※ここは1年間同じシートを使います。 1 営業所名 支出金額 項目 2 群馬支部 11980 雑費 4 群馬支部 19800 接待交際費 すこし複雑になってしまってもいいので これを解決できる方法を知っていましたら 是非教えて欲しいです! あつかましい質問で大変申し訳ありませんが どうぞよろしくお願い致します。

関連するQ&A