- ベストアンサー
エクセル 入力規則
何か良い方法がないか教えてください。シートが2つあり、一方のBシートのある列に担当者の名前を入力すると(行は顧客データが入っています)、もう一方のAシートのその顧客の行の担当者欄のセルにその担当者名が参照され、参照されると自動的に進行状況欄のセルに商談中と表示させたいのです。進行状況欄に入力規則のリストが設定されていない場合でしたら、簡単に出来ると思いますが、進行状況欄のセルにはリストで(未、商談中、成約、破談、その他)で選べるようにしておきたいのです。で商談の進み具合により、商談中を成約に変えたりできるように。 現在は、Bシートに営業の者が担当者名を随時入力すると、毎週決まった曜日に私が担当者名が新たに入力されたかどうか確認して、それをコピーしてAシートに貼り付け、進行状況欄を商談中に代えています。かなり手間がかかるので営業の者が担当者名を入力するだけで一度に入力規則を残したまま商談中と表示できないものでしょうか? Aシートの担当者名をBシートからの参照にしておき、Aシートをフィルターかけて担当者名が入力されているのに、まだ未になっているもの(商談中が未に逆戻りすることはないため)を商談中に変える方法なら今より楽にはなりますが、上記のように一気に出来ないものかと。 質問がわかりづらかったらすいません。補足しますのでご質問ください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まず、#1さんのおっしゃるように画像を添付された方が良いですよね。 あなたのやりたい事は いくつかの方法がある可能性があります。 あなたは入力規則で解決しようとしていますが だいたいの場合 関数を使います。 なので回答者は どのセルにどのような関数を入れれば解決するかという事を考えて適切な関数を提示してくれます。 上記の説明だけでは「仮にセルA1に」という回答をせざるを得ません。 で、本題ですが まず、Bシートにある担当者名ですが これはもうそのまま「=B!A1」とかにして下までコピペで全て反映させられますよね。 で 問題の進行状況ですが 入力規則でリストを作成されてますよね? で その入力規則でさらに「エラーメッセージ」タブの中から「無効なデータが入力されたらエラーメッセージを表示する」の チェックをはずしておけば数式を入力出来るのでチェックをはずし、そこに「=IF(A1="","","商談中"」としてみてください。 きっと お望みの結果が得られるはずです。
その他の回答 (4)
こんにちは。 参考になるかわかりませんが... 先ず、内容整理。 1.sheetAのA1セルに、sheetBで入力された担当者名を表示する。 2.sheetAのB1セルに、入力規則のリストで、[未]、[商談中]、[成約]、[破談]、[その他]を選択入力する。 3.sheetAのA1セルが空白だったらB1セルに "未" と表示する。 4.sheetAのA1セルに担当者名が入力されていたら(空白でなかったら)、B1セルに "商談中" と表示。 ワークブックを開いたときのイベントとして、以下を記述する。 Private Sub Workbook_Open() If Range("A1") <> "" Then If Range("B1") = "未" Then Range("B1") = "商談中" ElseIf Range("B1") = "商談中" Then Range("B1") = "商談中" ElseIf Range("B1") = "成約" Then Range("B1") = "成約" ElseIf Range("B1") = "破談" Then Range("B1") = "破談" ElseIf Range("B1") = "その他" Then Range("B1") = "その他" End If Else Range("B1") = "未" End If End Sub ワークブックを開いたとき... sheetAのA1セルが空白だったらB1セルに "未" と表示。 sheetAのA1セルに担当者名が入力されているのに、B1セルが "未" の状態だったら、B1セルに "商談中" と表示。 B1セルに "商談中" と表示されたワークブックを保存した場合、次回開いたとき、B1セルに "商談中" と表示。 B1セルに "成約" と表示されたワークブックを保存した場合、次回開いたとき、B1セルに "成約" と表示。 B1セルに "破談" と表示されたワークブックを保存した場合、次回開いたとき、B1セルに "破談" と表示。 B1セルに "その他" と表示されたワークブックを保存した場合、次回開いたとき、B1セルに "その他" と表示。 画像のC列は、B1セルの入力規則(リスト)の元の値。 必要に応じて、非表示にする。 的外れでしたら、ごめんなさい。 他のご回答を参考にしてください。
お礼
回答ありがとうございます。この記述はVBAですか?それはまったくわからずです。。こういう方法もあるのだなと頭に入れておきます。 今回はもっと簡単な方法で解決できました。ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 参考になるかどうか判りませんが・・・ 最初はA2に担当者名を入力するとB2に「商談中」、なおかつB2がリスト表示できればいいものと思い。 単純にB2セル=IF(A2="","","商談中")と数式を入れて、 B2セルにリストを表示させればいいと単純に思っていました。 そうしてしまうと、商談中をリスト内の他の物に変更してしまうと、数式までなくなってしまいますよね? そこで無理矢理って感じの一例です。 進行状況を表示させるセルとリスト表示させるセルを別にしてみてはどうでしょうか? ↓の画像で言えば B2セルに =IF(A2="","",IF(AND(A2<>"",C2=""),"商談中",INDIRECT("C2"))) という数式を入れます。 尚、リストには空白も1行加えておきます。 以上参考になれば幸いですが、 的外れの回答なら読み流してください。m(__)m
お礼
回答ありがとうございます。今回の場合は、数式がなくなってもよいので問題はありませんが、教えていただいたindirect関数の使い方は今 いろいろ調べてみて今後使えそうだなと思いました。 ありがとうございました。
- 有田 賢治(@ARIKEN43)
- ベストアンサー率50% (563/1116)
jimukan35さん 今日は! 色々と大変ですね。 ■Excel(エクセル)入門/基本/上級/実用講座の総目次↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/Exl-_zen.htm ■Excel2007(エクセル2007)基本講座の総目次↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/index.html 概要:「よねさんのWordとExcelの小部屋サイト」で図入りで、親切に解説して呉ますのでお気に入りに登録したいサイトです。 エクセルQ&A(Tips) も有り解説に無い分の検索で探せる1番のお勧めです。 ■エクセルの学校・ライブラリ他↓ http://www.excel.studio-kazu.jp/excellib.html 概要:表作成全般・関数・VBA・便利機能・その他・よくある質問・困った等ジャンル別に探せます。(Mac用も一緒に見れます) ■Excel・エクセルの技↓ http://kokoro.kir.jp/excel/index.html 概要:「Word/Excel/PowerPointのBeCoolUsersサイト」でExcelの小技を紹介しています。(Excel2007の小技も公開されています) ■ExcelQ&Aサロン↓ http://excelfactory.net/excelboard/ 概要:「ExcelQ&Aサロンサイト」で多くの共有サイトからQ&Aが見れるのが特徴です。 ■Excel(エクセル)基本講座:入力規則の使い方↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis_menyu.htm 入力規則の方法の解説です。 ■Excel2007(エクセル2007)基本講座:入力規則の使い方↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-ny_kis.html なのですが如何やら質問の内容は、入力規制でなくシートの呼び出しに為るようですね。 ■Excel(エクセル)基本講座:フォーム コントロール↓ http://www.eurus.dti.ne.jp/~yoneyama/Excel/form.html 此れを参考にシートの上にコンボボックス作成し、担当者名を登録して 担当者名を選択すればその人のシートに、飛ぶように出来そうですね。 上手くリストをシート内に其々コピーして置きそのリストに移動させればよいと思いますが。
お礼
回答ありがとうございます。 いろいろな参考リンク助かります。コンボボックスというのもよくわからないので勉強してみようと思います。
- ryou_nya
- ベストアンサー率44% (37/84)
進捗という項目があり、入力規則がかかっており、 (未、商談中、成約、破談、その他)で選べるようになってる。 担当者という項目があり、そこに名前が入ると、 同じ行の進捗という項目が最初に(商談中)になるようにしたい。 以上の条件で、実現方法を。 (入力規則は、設定前は、規則以外の値が入るという性質利用) A列:担当者 B列:進行中 で解説。 (1)B1に =if(A1="","","商談中) と入力 (2)B1に入力規則で(未、商談中、成約、破談、その他)に設定 (3)B1を選択し、下へコピーしていくと、それぞれ =if(A2="","","商談中) =if(A3="","","商談中) とコピーされてきます。 (4)A列に何か文字が入ると、Bは"商談中"になる 行と列の考えが違っていたら、縦横を変えるだけで そのまま流用できますので。 要求してる事に勘違いはないかな?もっと図解にしてくれると、 根本的にもっと楽な管理方法で提案できそうな気がするけど。
お礼
回答ありがとうございます。既に入力規則がされているため数式が入れれなくて困っていましたが、NO2様の回答で解決しました。ありがとうございました。
お礼
できました!ありがとうございます。既に入力規則がされているため 数式が入れれなかったのですが、ただ単にエラーメッセージのタブを 外せばよいのですね。本当に助かりました。これで作業効率がかなりアップしそうです。ありがとうございました。