• ベストアンサー

エクセル

営業をやっているものなんですが、エクセルで顧客別の今後の半年~1年ぐらいのスケジュールを作って管理しようと思っています。 Sheet1に全顧客別のスケジュールを記入していき、Sheet2以降に顧客をジャンル別に分けて、(例えば小売業、製造業・・・)1つのファイルにしたいと思ってます。 そこでSheet1にスケジュールを書き込んだときに、同じ顧客名が記載してあるSheetのスケジュールも自動的に同じ情報に更新される、また同じく、Sheet1のスケジュールを変更or削除したときには違うSheetのスケジュールも変更or削除されるようにするにはどうしたらいいのでしょうか? どなたかわかる方、お教えください。 お願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! No.1です! どうもごめんなさい。 前回の回答はデータ量が多い場合も対応できるようにしていたので 少し難しかったようですね? 通常、元データの1列目を参照して、何列目の値を返すか? という方法はVLOOUP関数で対応できますが、 前回は2列目より右側の列を参照して、1列目を返さないといけないので INDEX関数とMATCH関数を併用し、そのデータを利用してVLOOKUP関数でスケジュールを表示させるようにしています。 後ほど参考になりそうなURLを貼り付けてみたいとおもいますが、 今回の表の数式を書いておきます。 データは表どおりの場合です。 業種を選択すると対応するデータが複数あると思いますので どうしても作業用の列を使用します。 Sheet1のA列は前回同様、連番に Sheet2のA3セルに =IF($C$1="","",IF($C$1=Sheet1!C2,Sheet1!A2,"")) B3セルに =IF(COUNT($A$3:$A$8)>=ROW(A1),INDEX(Sheet1!$B$2:$B$7,SMALL($A$3:$A$8,ROW(A1))),"") C3セルに =IF(B3="","",VLOOKUP(B3,Sheet1!$B$2:$E$7,3,0)) D3セルに =IF($B3="","",VLOOKUP(B3,Sheet1!$B$2:$E$7,4,0)) という数式を入れ、A3~D3セルを範囲指定し、D3セルのフィルハンドル(+)マークで下へコピーすると 画像のような感じになります。 難しかったらこの画面から数式をそのままコピー&ペーストしてみてください。 かなり下までコピーしておいても構いません。 今回も長々と失礼しました。 尚、↓のURLも参考にしてみてください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/vlookup.htm http://www.geocities.jp/office_inoue/excel/eq34.htm どうも何度もごめんなさいね。m(__)m

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1のA2セルに顧客名と文字があり、A3セルから下方に顧客名のデータが、また、右横にはそれぞれの顧客名のスケジュールが入力されるとします。 シート2から他のシートにはジャンル別にあり、シートのA2セルには顧客名と文字がありA3セルから下方に顧客名があるとします。 そこで、シート見出しのところでShiftキーまたはCtrlキーを押しながらすべてのジャンルのシート名をクリックします。これでシート2から他のシートが作業グループになりますのでB3セルには次の式を入力し右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR($A3="",COUNTIF(Sheet1!$A:$A,$A3)=0),"",IF(VLOOKUP($A3,Sheet1!$A:$H,COLUMN(B1),FALSE)=0,"",VLOOKUP($A3,Sheet1!$A:$H,COLUMN(B1),FALSE))) その後にシート1を選択します。これで作業グループが解除されます。 その後に各シートを見れば各シートのセルには同じように数式が入力されていますのでシート1でのスケジュールの変更等は他の該当するジャンルでのデータの変更に直結しています。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 参考になるかどうか判りませんが・・・ 一例です。 元の表がどんな感じか判らないのでこちらで勝手に表を作ってみました。 ↓の画像で説明させていただきます。 配列数式にすると作業列が要らなくなるのですが、PCに負担がかかると思いますので 敢えて作業列を使わせてもらっています。 まずSheet1にA列を挿入し、連番を付けます。 そして、今回はひとつの業種(仮に製造)のみの方法を書きますので 例えばSheet2以降が業種別のSheetとするのであれば、 画面の左下にあるSheet見出しをSheet2以降をCtrlキーを押しながら選択します。 それで、Sheet2に数式を入力するだけでSheet2以降全て同じ数式が入ります。 Sheet2以降も作業列をA・B2列使わせてもらいます。 D1セルに「業種」を入力すれば↓の画像のように表示されるようにしてみました。 A3セルに =IF($D$1="","",IF($D$1=Sheet1!C2,ROW(A1),"")) B3セルに =IF(COUNT($A$3:$A$993)>=ROW(A1),INDEX(Sheet1!$A$2:$A$1000,SMALL($A$3:$A$993,ROW(A1))),"") C3セルに =IF(B3="","",INDEX(Sheet1!$B$2:$B$1000,MATCH(B3,Sheet1!$A$2:$A$1000,0))) D3セルに =IF($B3="","",VLOOKUP($B3,Sheet1!$A$2:$E$1000,COLUMN(D1),0)) とし、D3セルのフィルハンドルでE3セルに数式をコピーします。 最後にA3~E3セルを範囲指定し、E3セルのフィルハンドルで 下へコピーすると画像のような感じになります。 数式は元データが1000行まで対応できるようにしていますので データ量によって領域はアレンジしてくださいね。 そして、作業列が目障りであれば、数式を入力した後、非表示にしてもOKかと思います。 尚、スケジュール等は2列だけとしていますが、もっと列が増えてもD3セルを列方向にオートフィルでコピーすれば全て表示されるはずです。 以上、長々と書きましたが、参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m

sasakiaki2
質問者

お礼

回答ありがとうございます。 ただ初心者の私には高度すぎて書かれているように作ろうと思ってもREF表示が出たりと作れません。 何か、詳細が記載してあるwebとかありますでしょうか?