- 締切済み
エクセルでリストの切り替えとか
エクセルを使って時給計算をしています。 この度、仕事内容を2分割して、内容に応じて時給が変わることになり 対応させるために色々試してみたのですが上手くいきません。 内容は以下の通りです。 現在はプルダウンメニューで『名前を選択』 VLOOKUPを使い『時給表示』となっています。 この度、『仕事の選択』をプルダウンメニューで作り 『仕事の選択』の内容によって『名前を選択』の選択肢が変わるようにしました。 ※『名前の選択』は従業員名なので、全く同じ内容ですが 『時給表示』に表示させる時給が違うので、表を2つ作り名前の定義をしました。 以下概略です。 sheet1 a1プルダウン『仕事内容』 a2~a10プルダウン『名前選択』 b2~b10VLOOKUP『時給表示』 sheet2 a1『時給高い』 b1『時給安い』 a2~a21『名前』 b2~b21『時給』高い c2~c21『名前』 d2~d21『時給』安い しかし、時給表示が上手くいきません。 b2~b21の時給(元々の使っていた)は表示されますが 新たに作った安い時給の方がエラーになり表示されません。 根本から変えないと出来ないのでしょうか? わかる方いらっしゃいましたら、ご教授ください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- MackyNo1
- ベストアンサー率53% (1521/2850)
>sheet1のb2~b10の『時給表示』は、 としています。 上記の数式は少なくともA2セルの値を検索値としてsheet2'!$a$2:$d$21のA列の値の中から2列目(B列)の値を引っ張ってくる数式になっています(C列のデータやD列のデータは意味がありません)。 A2:A10セルの名前表示の欄が入力規則のリストで「=INDIRECT(A1)」が設定されているなら、B列のVLOOKUP関数は以下のようにしてください。 =IF(ISNA(VLOOKUP(A2,'管理リストsheet2'!$A$2:$B$21,2,FALSE)),VLOOKUP(A2,'管理リストsheet2'!$C$2:$D$21,2,FALSE),VLOOKUP(A2,'管理リストsheet2'!$A$2:$B$21,2,FALSE))
- kagakusuki
- ベストアンサー率51% (2610/5101)
確認したいのですが、Sheet1のA1及びA2~A10のプルダウンリスト(この場合には正しくはドロップダウンリストと言います)の動作は、既に正常に行われているため、ドロップダウンリストを設定する方法に関しては、今回回答する必要は特には無いと考えて宜しいのですね? それから、時給の表示に関してですが、 まず、Sheet2のA2~A21と、C2~C21が、同一の内容である場合には、C列に名前を入力しておく必要は御座いませんので、C列を削除して、替わりにD2~D21に入力されていた安い方の時給のデータを、C2~C21に入力して下さい。 次に、Sheet1のB2セルに次の数式を入力して下さい。 =IF(OR($A$1="",$A2=""),"",VLOOKUP($A2,Sheet2!$A:$C,1+MATCH($A$1,Sheet2!$1:$1,0),0)) そして、Sheet1のB2セルをコピーして、Sheet1のB3以下に貼り付けると良いと思います。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>新たに作った安い時給の方がエラーになり表示されません。 #N/Aエラーが出るのでしょうか? その場合は単純に数式で検索値が無いということを示しています。 また、安い時給の名前は高い時給の名前と全く別なのでしょうか?(それならC列とD列を使用する必要はないですね) いずれにしろ、実際に使用している数式を含めて、どのような設定でSheet1のA列に名前を表示させているのかなど、もう少し具体的に補足説明してください。
補足
ご回答ありがとうございます。 至らない説明で申し訳ありません。 >新たに作った安い時給の方がエラーになり表示されません。 #N/Aエラーが出る場所と、b列の高い時給が出る場所があります。 sheet1のa1プルダウン『仕事内容』は、 sheet2のa1『時給高い』とb1『時給安い』で 名前の定義『仕事内容』としています。 sheet1のa2~a10プルダウン『名前選択』は、 sheet2のa2~a21『名前(従業員名)』を名前の定義『時給高い』とし、 sheet2のc2~c21『名前(従業員名)』を名前の定義『時給安い』としています。 それぞれ隣の列に、高い時給と安い時給を記入しています。 sheet1のb2~b10の『時給表示』は、 =IF(ISNA(VLOOKUP(sheet1!a2,'管理リストsheet2'!$a$2:$d$21,2,FALSE)),"",VLOOKUP(sheet1!a2,'管理リストsheet2'!$a$2:$d$21,2,FALSE)) としています。 >安い時給の名前は高い時給の名前と全く別なのでしょうか? 従業員の名前なので、どちらも同じ名前が入っています。 インターネットで検索しても、バラバラの事例 (aのプルダウンメニューで選んだ内容によって、bのプルダウンメニューの内容を変える方法) (プルダウンメニューで選択すると、隣のセルに自動で入力される方法) などは出てくるのですが、組み合わせたやり方は私には見つけられなかったので 自分なりに勝手に合わせてみただけの代物です。 ご教示の程よろしくお願いします。