[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表作成について』(羊)
過去のデータを見させていただきました。
似た感じで下記のような表現をしたいです。
関数でうまくできる方法がありましたら教えていただきたいです。
sheet1のような変動したい単価表を作成します。
<sheet1>
商品名 区分 4月単価 5月単価 6月単価 7月単価 8月単価 9月単価 ・・・ 3月単価
商品A A 100.00 110.00 110.00 118.80 118.80 118.80 ・・・ 118.80
商品B B 100.00 100.00 100.00 100.00 100.00 108.00 ・・・ 108.00
商品C C 200.23 200.23 200.23 200.23 200.23 200.23 ・・・ 200.23
例)sheet1では自由に単価を変更したい。
Aは5月に10%単価を変更、7月に8%単価を変更。(1年のうちに何度も単価を変えることがあります。)
Bは9月に8%単価を変更。
Cは1年間変動なし。
【表現したい結果表】
<sheet2>
コード 区分 4月単価 5月単価 6月単価 7月単価 8月単価 9月単価 ・・・ 3月単価
1111 A 10.50 11.55 11.55 12.47 12.47 12.47 ・・・ 12.47
2222 B 3.33 3.33 3.33 3.33 3.33 3.60 ・・・ 3.60
3333 A 5.50 6.05 6.05 6.53 6.53 6.53 ・・・ 6.53
4444 A 7.20 7.92 7.92 8.55 8.55 8.55 ・・・ 8.55
1.sheet2では、sheet1と同じ区分の月単価が変動した場合、変動した後の単価で数値セットしたい。
例)区分Aのコード「1111」は5月に10%変動があったため10.50の10%で11.55をセット。
6月もそのまま11.55をセット。
さらに7月に8%単価が変わったので11.55の8%で12.47をセット。
(小数点第二位四捨五入で表現します)
7月以降変動がないためそのまま12.47がセットされる。
このような変動表を作成したいです。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
>小数点第二位四捨五入で表現します これは表示だけ小数点以下2桁表示とするのか、値そのものを小数点以下2桁とするのかどちらだろうか?
値そのものを小数点以下2桁にする場合はSheet2のD2セルに =ROUND($C2/SUMIF(Sheet1!$B$2:$B$100,$B2,Sheet1!$C$2:$C$100)*INDEX(Sheet1!$D$2:$N$100,MATCH($B2,Sheet1!$B$2:$B$100,0),COLUMN(A1)),2) と入力して右および下へフィルコピー、表示だけ小数点以下2桁にする場合は =$C2/SUMIF(Sheet1!$B$2:$B$100,$B2,Sheet1!$C$2:$C$100)*INDEX(Sheet1!$D$2:$N$100,MATCH($B2,Sheet1!$B$2:$B$100,0),COLUMN(A1)) として表示形式で小数点以下2桁に。
どちらもSheet1のデータが最大100行目までとしている。 もっと行数がある場合は式中の「$100」部分を大きくしてくれ。 (ねむねむ) 2015/04/21(火) 11:24
=ROUND($C2/SUMIF(Sheet1!$B$2:$B$100,$B2,Sheet1!$C$2:$C$100)*INDEX(Sheet1!$D$2:$N$100,MATCH($B2,Sheet1!$B$2:$B$100,0),COLUMN(A1)),2)
(羊) 2015/04/21(火) 13:15
式自身は =ROUND(A/B*C,2) という構造になっていてROUND関数でA/B*Cの結果を小数点以下2位未満を四捨五入している。 A/B*C は
A:4月の単価[$C2] B:4月の単価変動率[SUMIF(Sheet1!$B$2:$B$100,$B2,Sheet1!$C$2:$C$100)] C:その月の単価変動率[INDEX(Sheet1!$D$2:$N$100,MATCH($B2,Sheet1!$B$2:$B$100,0),COLUMN(A1))] となっている。
BはSUMIF関数でSheet1のB列がSheet2のB列の値と同じSheet1のC列の値を持ってきている。 その値で4月の単価を割ることで変動していない実質単価を求めている。
INDEX関数の構文は =INDEX(セル範囲,セル範囲内での行,セル範囲内での列) で、一つのセルを求める。 ここでCの式は INDEX(5月から3月までの変動率表,Sheet1のB2セルからB100セル列の値がSheet2の$B2セルと同じ行,D列から何列目か) で、対応する区分・月の変動率を求めている。
もし、まだ不明な点があれば質問してくれ。 (ねむねむ) 2015/04/21(火) 13:42
(羊) 2015/04/21(火) 13:56
COLUMN関数は指定したセルの列番号を返す。 (セル指定を略した場合は入力されているセルの列番号を返す) 式を入力した1列目では1、コピーした2列目では2がほしいためA1を指定している。
D列への入力なので COLUMN()-3 でもいいが、表の位置を変更したい場合、「COLUMN()-3」では3の部分を他の値に変えなければならないが「COLUMN(A1)」であれば変更がいらないためにセルの指定で「A1」を指定している。
(ねむねむ) 2015/04/21(火) 14:10
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.