[[20160204150606]] 『条件を指定して個数を求めたい』(taka) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『条件を指定して個数を求めたい』(taka)

 下記のような表1の個数を単価の高いものから引きたい。C単価が4以上の時は4を引き4未
 満の時はその個数を引きます。単価が同じA単価とB単価は個数が同じときはAのほうから
 引きます。単価が低いDは残ることになります。その結果が表2のようになるようにする
 にはどのような数式を入れればよいでしょうか?
 表1
 A単価  B単価  C単価  D単価  計
 4        3        2        5        14
          5        5                 10
 5        2        3        4        14
 1        15       1        2        19
 表2
 A単価  B単価  C単価  D単価  計
 2        3                5        10
          5        1                  6
 4        2                 4        10      
          13                2        15

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 まず、単価は
 C>A=B>D
 なのか?

 また行ごとに4を引くということか?

 >単価が同じA単価とB単価は個数が同じときはAのほうから引きます。
 も意味不明
 例にしてある表ではA単価とB単価の個数が同じ行はないようだし。

 表1を残したまま別の場所に表2を作りたいということか?

 全体的に説明不足なのでもっとおこないたいことの説明を詳しく。
(ねむねむ) 2016/02/04(木) 15:30

 とりあえず。

 元の表がA列からE列、一行目が見出しとする。

 H列からL列に表2を作成するとして。
 H2セル:=MAX(0,A2-MAX(0,4-C2))
 I2セル:=MAX(0,B2-MAX(0,4-C2-A2))
 J2セル:=MAX(0,C2-4)
 K2セル:=MAX(0,D2-MAX(0,4-C2-A2-B2))
 L2セル:=SUM(H2:K2)
 と入力しH2:L2を下へフィルコピー。
(ねむねむ) 2016/02/04(木) 15:53

説明不足ですみません。
それに単価がぬけていました。
A単価とB単価は100
C単価は150
D単価は80です。
行ごとに単価の高い順から4を引きますが入力するスペースがなくて例にはないのですが
単価が同じAとBの個数が同じ場合はAから引きます。
当然Dは残ることになります。

その結果を別に表2に作りたいのです。
今は、自分で振り分けてやっていますが、自動的に計算結果が出たらいいなと思い
質問しました。
よろしくお願いします。

(taka) 2016/02/04(木) 16:29


 ひとつ不確かなので確認。

 上に書いた式では無条件でC,A,B,Dの順番で引いているが、
 >AとBの個数が同じ場合はAから引きます。 
 これはもしかしてAとBの個数が違う場合、多いほうから引くということになるのだろうか?
 (もっともそれでは4行目の説明がつかないが)

 わざわざ「AとBの個数が同じ」としている理由はなにか?
(ねむねむ) 2016/02/04(木) 16:41

AとBが同じ場合というのは忘れて下さい。4を引く優先順位がC,A,B,Dの順で間違いありません。
(taka) 2016/02/04(木) 18:29

 (ねむねむ) 2016/02/04(木) 15:53
 がどうだったかの反応がないが、表を少し変更して少し汎用性を持たせる。

      A      B      C      D       E    〜    H      I      J    K        L
 1   100    100    150     80                  4
 2 A単価  B単価  C単価  D単価     計       A単価  B単価  C単価  D単価    計
 3     4      3      2      5     14           2      3      0      5    10
 4            5      5            10           0      5      1      0     6
 5     5      2      3      4     14           4      2      0      4    10
 6     1     15      1      2     19           0     13      0      2    15

 とA列からD列の1行目に単価、H1セルに引きたい個数を入力。
 H3セルに
 =MAX(0,A3-MAX(0,$H$1-SUMIF($A$1:$D$1,">"&A$1,$A3:$D3)-SUMIF($A$1:A1,A$1,$A3:A3)+A3))
 と入力して下および右へフィルコピー。
 L列はSUM関数で。
(ねむねむ) 2016/02/05(金) 09:31

希望通りの結果がでました。
大変助かりました!ありがとうございました。

(taka) 2016/02/05(金) 10:37


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.