- ベストアンサー
ドロップダウンリスト、リスト内の名称を変えると表示されなくなる。解決方法は?
こんにちは。先日 http://oshiete1.goo.ne.jp/qa2494316.html にて質問させて頂いた者です。内容を抽出しますと、 『例えばSheet1のA1~A10に順に醤油、砂糖、塩、みりん、調味料などと原料名を入れ、B1~B10に醤油、砂糖、塩~の仕入れ価格(円)60、88、27などを入れます。 それをSheet2以降(シート1枚に1商品の原価計算書を作りたいので、同じ書式のシートを複数つくる事になる)の原価計算書の、例えばC5~C30の「原材料名」欄に入れるのですが、ドロップダウンというのか、逆▼の矢印をクリックすると、Sheet1のリストが現れ、リックすればSheet2のC5~C30の任意の場所に表示されるというようなのが理想です。』 NO.3様(検索にかかるのはご迷惑かもしれませんので、敢えてそう呼ばせて頂きました)のご回答のおかげでドロップダウンリストを作成することが出来、大変よろこんでいました。とりあえずは「上司に出す計算書が出来た!」と喜んでいたんですが、問題が発生しました(汗) Sheet1にリストを作り、Sheet2以降の原材料名欄に逆▼を使用してSheet1のリストを入力するのですが、例えばSheet1にある「醤油」をSheet2に逆▼を利用して既に入力していたとします。そうすると原価も表示されています(質問にて解決済)。 その後にSheet1の「醤油」の原材料名を「醤油S」に変更すると、Sheet2以降の「醤油」は「醤油S」に変換されず「醤油」のまま。原価も表示されず・・。 私の考えでは、原料が良く変わるので、リストの原材料名を変更すればSheet2以降の原価計算書に入力済みの原材料名(および原価)もパッと全て変換されるのが理想で・・。原材料毎にコードを設定していないし私が勝手に設定出来ないし。ですので現状で何とかならないものかと・・・。 どなたかご存じの方お助け下さい。何度も質問し失礼とは存じますがよろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、本当におっしゃるような仕様で大丈夫なのか、気になるところですが…。たとえば、完全に「醤油」→「醤油S」に置き換わるということでよろしいのでしょうか。それも全商品に対して。もし、そうだとしても、「過去の原価計算書と比較したい」とか「いつから仕様変更になったのか」などにも対応できるように、過去のファイルはそのまま残しておくとか、そういう対応も必要になりそうですね。 さて、「醤油」→「醤油S」のように完全に置き換えるのなら、発想を転換して[編集]→[置換]コマンドを利用するのが手っ取り早いのではないでしょうか。同コマンドを実行して表示されるダイアログで、[オプション]ボタンをクリックすれば、「シート」毎ではなく「ブック」を対象にして一括して置換することができます。 このあと、原価についてはSheet1の内容を変更すれば、他のシートにも反映されます。また、新規に作成する原価計算書については、新しい「醤油S」がリストに表示されますので、これも問題ないかと。
その他の回答 (3)
- web2525
- ベストアンサー率42% (1219/2850)
No1です。 入力規則の元の値の項目は手入力で行ってください。 最初のスペースは必ず入力してください。
入力規則は、手入力とか値のコピー&ペーストと同じなので、リンクを設定するのは難しいですね。 コンボボックスを使えば、その理想というのに近くなると思います。 http://arena.nikkeibp.co.jp/tec/excel/20040308/107565/ ↑はリストボックスですが、その隣のボタンのコンボボックスを使います。 設定の仕方はどちらも同じです。 Sheet2のC5~C30のセル上に配置するとなると、26個作らなければなりませんが。 C5のセル上に作ったコンボボックスの設定は、 入力範囲をSheet1のA1~A10、 リンクするセルをC5 D5: =INDEX(Sheet1!$B$1:$B$10,$C5) コンボボックスが不可の場合、別案で、 C列にはD列と同じように数式を入れて、別の空いている列に入力規則を設定します。 名前定義で[名前]しょうゆ [参照範囲]=Sheet1!$A$1:$B$1 として追加 [名前]さとう [参照範囲]=Sheet1!$A$2:$B$2 として追加・・・ Sheet1のA1~B10にひとつずつ名前を付けます。 Sheet2のE列が空いているとして、E5~E30に入力規則を設定、 [元の値]しょうゆ,さとう,・・・ と入力(「=」はいらない)。 または、しょうゆ,さとう・・・という名前定義で付けた名前を、どこかのセル(例えばF1~F10)に入力して、[元の値]=$F$1:$F$10 C5: =INDEX(INDIRECT(E5),,1) D5: =INDEX(INDIRECT(E5),,2) 原材料名が「醤油」から「醤油S」に変わるくらいならいいですが、 「醤油」から「ソース」に変わったりすることがあると、ややこしいので、 名前の付け方に工夫が必要です。 まあ、いづれにしても仕込みに多少手間がかかります。
お礼
お礼の言葉が遅くなりすみません。 ご回答ありがとうございました。 結論としては、NO.3の方のご意見を頂戴しようかな・・と。 色々考えた結果、コレが一番いいのでは?と思いました。 折角お答え頂いたのにすみませんでした。 今後ともよろしくお願い致します。
- web2525
- ベストアンサー率42% (1219/2850)
ドロップダウンリストの場合は、計算式ではなく数値そのものの入力となるため、一度確定されるとそのあと参照元を変更しても変化はしません。 参照元の変更を反映させるためには、ドロップダウンリストの内容をせる指定ではなく計算式に変更する必要があります。 例題の場合: データの入力規制の【元の値】の中身を ,=sheet1!a1,=sheet1!a2,=sheet1!a3,・・・・・・,=sheet1!a10 ↑(スペース) に変更すれば参照元のセルの値を変更した場合に変化します。
補足
ご回答ありがとうございました。 「入力規制」=「入力規則」の事でよろしいですよね? 早速 「データ」→「入力規則」と進め、「元の値」をお教え頂いたように変更しようとしたのですが、別シートをクリック出来ません。 私の場合は「原材料名」になっていますが、元となるデータは別Sheet1にあり、その別Sheet1の範囲をお教え頂いたように設定したいのですが、頑として動きません。これは「元の値」のところに「手動にて」入力しなければならないのでしょうか?やり方が悪いのでしょうか? チョットぐちが入っちゃいますが、なめられないようにがんばっているのに、全然ついていけてないです(泣)仕事なのに・・・。 やっぱりこういうのって男性の方が得意なんでしょうね。 何度もすみません。お時間ありましたらよろしくお願い致します。
お礼
お礼の言葉が遅くなりすみません。 仕様変更の時期などは、別記する必要ありますが、そんなに手間ではないので・・。 「編集」→「置換」を利用してみました。 便利ですね。基本的には原料は全商品変えます。たまに一部だけの変更がありますが、その際はドロップダウンリストに1項目増やしてやれば対応できるかと・・。変更するレシピ数も少ないし。 暫くコレでやってみます。 その間に、皆さんに負けないように勉強します^^