- ベストアンサー
給与等級表をエクセルで参照・・
やりたいことは 氏名 等級 給与 山田太郎 A1 100,000 山田太郎 B1 120,000 とうような部分があり、等級に「A1」と入れると、自動的に等級表リストを参照して、金額を表示してくれるということです。 等級表は 号/級 A B 1 100,000 110,000 2 100,500 110,500 3 101,000 111,000 #エクセルのスキルは今まで簡単な関数を使うくらい。 #こういう私でもできる? #マクロは使わず?にできる方法希望。 #質問のしかたもちょっと自信なし。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Vlookupでもできますよ。 等級のセルがB1とします。 給与のセルがC1とします。 給与が、 A4 A5 A6 A B 1 100000 110000 2 100500 110500 3 101000 111000 とします。 C1のセルに、以下を設定します。 =VLOOKUP(INT(MID(B1,2,1)),A4:C7,IF(MID(B1,1,1)="A",2,IF(MID(B1,1,1)="B",3)),FALSE)
その他の回答 (4)
- taisuke555
- ベストアンサー率55% (132/236)
ちょっとインチキな方法ですが・・・ 等級表 | A B C ------------------------------ 1| 号/級 A B 2| 1 100,000 110,000 3| 2 100,500 110,500 4| 3 101,000 111,000 のように、入っているならば | A B C ------------------------------ 1| 氏名 等級 給与 2| 山田太郎 A1 =IF(B2<>"",OFFSET(INDIRECT("等級表!"&B2),1,1),"") でも出来ると思います。 この方法は、他の方の回答と違い、等級を検索している訳ではなく 単純に等級に入力した「A1」をセルに見立てて、等級表のA1セルから「1つ右1つ下」の値を表示します。 ですから、号がA、B、Dや 級が1、2、4のように連番にならない場合は使えません。
お礼
回答ありがとうございました。 いろいろな方法がでて、素人には大変な作業?なので正月にチャレンジすることにしました。 (^^;
- souta_n
- ベストアンサー率33% (79/234)
再度登場します。わたくし質問を読み間違えていたのと、INDEX関数の引数を間違えていました。追加と訂正です。 例えば、セルF1に質問の「A1」とか「B1」とかを入力するとしたら。そして、等級はABCの3つのみ、号は1~99までと仮定すると、 A1セルの数式は =IF(LEFT(F1,1)="A",1,IF(LEFT(F1,1)="B",2,IF(LEFT(F1,1)="C",3,0))) A2セルの数式は =MID(F1,2,2) または =VALUE(MID(F1,2,2)) A3セルの数式は =INDEX(C1:D3,A2,A1)です。
- souta_n
- ベストアンサー率33% (79/234)
INDEX関数を利用したらいかがですか。 例えばご質問のテーブルの100,000~111000までの範囲がc1:d3だと仮定します。 A1に号の番号を入力するセルとします。 A2に級の番号を入力するセルとします。(この時級も1・2・3という数値にします) A3に給与額が算出されるセルとします。 A3に入力する式は =INDEX(C1:D3,A1,A2)です。
お礼
回答ありがとうございました。 エクセルを触っていないと、何から何までおっくうで・・。 よって、正月休みにチャレンジします。 (^^;
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
等級表の中で級に該当する列を探し、号俸だけ下がった行を返せばいいわけですから、 級 := left(等級,1) 号 := mid(等級,2,2) として 給与 := hlookup(級, 等級表, 号+1, FALSE) で出来るでしょう。
お礼
回答ありがとうございました。 まだ、とりかかえれずにいますが、正月にでもいろいろ試してみます。
お礼
回答ありがとうございました。 昔、一瞬だけ「Vlookup」は使った記憶があるのですが、最近はエクセル使わないので、おっくうになっています。 (^^; 恥ずかしながら、正月にチャレンジします。