アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になっております。
エクセルで以下のようなことをしたいのですが、できますか?
エクセル初・中級者レベルです。

----
約3000人の「点数」(実測値)があり、各人の属性(年代、性別)ごとに係数をかけて
全員の「正味値」を出したい。

(例)
1 10代 男性 20.3
2 30代 女性 43,2
3 50代 男性 8.9
・・・
3000 20代 女性 240.5

みたいなデータがあります。
この点数が実測値なのですが、データとして用いる場合、各人の属性ごとの係数を
かけて、正味値を出します。

各人の属性ごとの係数は、年代(10代、20代、30代、40代、50代)×性別(男、女)の10種類あります。

ですので、前述のデータの場合は、

1 10代 男性 20.3×属性(1)
2 30代 女性 43,2×属性(6)
3 50代 男性 8.9×属性(9)
・・・
3000 20代 女性 240.5×属性(4)
のように、それぞれの点数に、属性(1)~(10)をかけた値(正味値)を出したいのです。

当初、
「10代 男性」だけフィルタをかけて出てきたものに、属性(1)をかけて、もとに戻し、
次に「10代 女性」だけフィルタをかけて出てきたものに、属性(2)をかけて、もとに戻し・・・
という作業をしましたが、うまくいきませんでした。

どうすれば、正確にできるでしょうか?
一つ一つのデータを見て、属性の種類を考えて、手で計算式を入力する方法は確実ですが、
時間がかかってしまいます。

どなたかお詳しい方、教えてください。。m(_ _)m

A 回答 (5件)

添付図のように対応表を用意して,それぞれの「属性」から「係数」を計算してかけ算します。



D2:
=C2*VLOOKUP(A2,$F$2:$G$6,2,FALSE)*IF(B2="男性",0.8,0.6)

「男女」などのように二択であればこのようにIFで仕分けても良いですし,VLOOKUPしても勿論構いません。




#VLOOKUP関数をマスターすれば,エクセル初級を卒業認定です。
「エクセルで条件ごとに係数をかけたい」の回答画像2

この回答への補足

おぉ!!
わざわざデータを作って、写真まで貼ってくださるなんて!!
その手間に感謝です^^
VLOOKUP関数なるものがあるんですね、勉強になります。
上記質問欄で、「初中級者」と書きましたが、まだまだ超初心者でした。。。

明日さっそく勉強してみます!
本当に助かりました^^

補足日時:2011/10/20 01:06
    • good
    • 0

コンなのはVLOOKUP関数のTRUE型を使う問題だ。


年代の表 年代の区間幅ーー対応する係数
性別の表 性別ーー対応する係数
その他あるのかな?(10種とは?
>10代、20代、30代、40代、50代)×性別(男、女
なら7種か?紛らわしい書き方だね)
の2種+アルファ個の検索表を作り
年代係数の列
性別係数の列
その他係数の列
をつくり、それぞれの列で
年代ーーVLOOKUPのTRUE型
性別ーーVLOOKUPのFALSE型
その他ーー有無と内容不明(略)
を検索して、最後にそれらを掛け算すれば仕舞い。
ーー
VLOOKUP関数など、エクセルの関数の常識で、四則演算+SUM・COUNT・AVERAGEの学習の次に必要なエクセルの常識の関数。
まずGoogleなどで(WEBでも)「エクセル VLOOKUP TRUE型」などで、照会して、じっくり勉強のこと。
腐るほどの記事件数が出てくるのだ。
式複写を使うので、第2引数の検索範囲には絶対参照で式を書くこと(またはセル範囲の名前付けをする)
    • good
    • 0
この回答へのお礼

お礼を申し上げるのが遅くなり、申し訳ありません。。
紛らわしい書き方をしたのに、丁寧に教えて下さって、あいがとうございます^^
これからもきちんと勉強しますね!><

皆さんのおかげで、無事作業をすることができました!
勉強するきっかけにもなりましたし、本当に本当に助かりました。

皆さんにBAを差し上げたいのに・・・(><)
本当にありがとうございます。

お礼日時:2011/12/03 14:49

こんばんは!


横からおじゃまします。

一つ気になったので・・・
年代の列に実年齢が入っている場合での方法です。

↓の画像のように表を作成しておきます。

そして、D2セルに
=IF(COUNTBLANK(A2:C2),"",C2*INDEX($G$3:$H$7,MATCH(A2,$F$3:$F$7,1),MATCH(B2,$G$2:$H$2,0)))
という数式を入れオートフィルで下へコピーすると
画像のような感じになります。

※ 年齢セルが10代・20代・・・となっているのであれば当然正しい結果は出ません。

以上、参考になれば良いのですが・・・m(_ _)m
「エクセルで条件ごとに係数をかけたい」の回答画像4
    • good
    • 1
この回答へのお礼

お礼を申し上げるのがすっかり遅くなってしまって、申し訳ありません・・・(><)
横からでも、アドバイスをくださって 、ありがとうございます。
年齢層の件、わかりました!!

わざわざ表を作ってくださって・・・。
皆さんのその労力に本当に感謝です(;o;)

無事作業することができました!!

これからもまた質問することがあるかもしれませんが、その際もお力を貸していただければ嬉しいです(^^)

お礼日時:2011/12/03 14:46

まあ、普通なら属性値の表を別表に作ります。


VLOOKUP関数とか、INDEX関数やMATCH関数をつかって・・・ごにょごにょする。
で終わりです。

が、たかが10種類の係数で・・・とも思うので、
"データ"-"並べ替え"の機能を使って、最優先するキーを性別の列、二番目に優先されるキーを年代の列にして、表全部を対象に並べ替えをしてしまえばいいんではないでしょうか。
両方昇順でやると、多分、男全員が前半に年代順に並び、女全員が後半に年代順に並びます。

そこで、上から順に該当の年代の人達だけ、10回式入力の、コピー繰り返しで良いんでは。
最後に、一番頭のNoをキーにして並びを戻す。
----
もちろん、別表作るほうが、応用は効くし真っ当ですよ。
ただ、私自身は、やってるうちに計算結果を得たいのか、エクセルの操作を覚えるのが目的なのか、目的と手段の比率がおかしくなりがちなので、まー出来りゃいいじゃんと思うときは、なるべく式も機能も適当にさぼって使うように心がけております。

この回答への補足

なるほど!
データの並べ替えで、最優先するキーと、二番目に優先するキーを設定すればいいのですね。
いつも優先するキーをひとつしか設定していなかったので、一度並び替えた後に、その中で再度並び替えがごちゃごちゃになっていました。

最優先するキーと、二番目に優先するキーの設定の仕方をちょっと調べてやってみます。

目からうろこでした。
アドバイスありがとうございます^^♪

補足日時:2011/10/20 01:04
    • good
    • 0

属性(1)~(10)の係数がZ1:Z10にあるとして


_ A__ B__ C__
1 10代 男性 20.3
2 30代 女性 43.2
3 50代 男性 8.9

として
D1=IF(COUNTA(A1:C1)=3,INDEX
($Z$1:$Z$10,CHOOSE(LEFT(A1,1)*1,1,3,5,7,9)+(B1="女性"))*C1,"")

この回答への補足

夜遅くに、ありがとうございます!
難しそうですが、調べるきっかけになりました。
とても助かりました(^^)

補足日時:2011/10/20 01:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!