• ベストアンサー

エクセル2003の関数について教えて下さい

A、Bには数値が入力してあり、Cへ下記の数値を一度で求めるエクセル関数を教えて下さい。 Cは、A列>5であれば各行のB列/A列をA列の倍数で切り上げ、A列<=5であればその各行のB列の総和を1で割り切り上げたいです。    A   B   C 1 20 59.1  3 2 25 40.2  2 3  1 0.5   2 4  3  1       *A列は固定値、B列は変動値です。  *C3にてA列<=5の条件を満たす部分を指定可能なので、C4では計算せず、まとめてC3で計算処理します。 何度も試行錯誤して試してみても答えが出ませんでした。 よろしくお願い致します。 ※CEILING、IF、SUM、ROUNDUP関数を組み合せてみましたが・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • NaoDorry
  • ベストアンサー率50% (5/10)
回答No.5

かなりややこしくなってますね。 たぶん条件を満たさない行の集計をC3に書いてるのが 混乱する原因かと。 問題を切り分けて考えましょう。 A列>5 の条件を満たさない場合、C列は空白や0としてはいかがでしょうか。 合計のセルは別のところに持っていき そこにC列が空白の行を合計する計算式を入力すると わかりやすい表が出来ると思いますよ。

sky_blue77
質問者

お礼

ご回答ありがとうございます。 何とかならないかと固執し過ぎたところが反省点です。 そこで問題を切り分けて考え直してみました。 ひとつの列で自動計算させるのではなく、2つに分けることで何とか問題解決出来ました。 まだまだ知らない関数や使い方を知らないことが多々ありますので、これから学んでいきます。 皆様、ありがとうございました。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

今までに出たことがない、珍奇な内容で、質問の意味がわかり難い。 もう少し実例だけでなく、計算ステップを追って説明すべきだ。 例えば下記の例のように。 ーーーー 下記でよいか確認したい。!!! 式を入れる(結果を出す)列 C列 条件 A列のみ?    (1) A>5の場合は      <B列/A列をA列の倍数で切り上げ??>       割って商がもし21なら、20単位で40にするのです       か?     (2)A<=5の場合      <各行のB列の総和を1で割り??>      各行とは?        A列<=5の該当全行の和か?      上例では、第3行が5以下なので、このケースでしょう      が、A列が5以下の行を対象に       すなわち第3行、第4行について 、      A列が<=%である行の、対応するB列の数字を足して       すなわちB3+B4を出して、結果1.5だから1単位に       切り上げて、2となる。       そして       第4行(初めて出た<=5以下の行)より下の<=5の      行ガあれば、その行の、C列は空白にする。 ====== テストで例えばD列に  =IF(COUNTIF($A$2:A2,"<=5")=1,ROUNDUP(SUMPRODUCT((A2:A10<=5)*(B2:B10)),0),"") を入れて下へ引っ張ると、<=5初出の第3行だけ2となる。 ーー これと=IF(A1>5,計算,上記の式)を組み合わせればよいのかなと思う。 「計算」の式はCEILING関数を使うと思うが、質問者がわかっているようなので略。

sky_blue77
質問者

お礼

ご回答ありがとうございます。 とてもわかりやすいご指導ありがとうございました。 とても勉強になりました。 ありがとうございました。

  • n4330
  • ベストアンサー率24% (215/872)
回答No.4

  #1のお礼を見ましたが、計算のルールを決めてください A1>5 ・・・20は5より大きい A2>5 ・・・25は5より大きい この時は1行で計算してますが A3<=5 ・・・1は5より小さい 5より小さい時は1行で計算を完結せずに次の行も計算に入れるのですか? A4<=5 ・・・3は5より小さいですね、 この時はA3と同じく次の行(A5)は計算に入れないのですか もしA4が6だったらどうするのですか? この様に一定のルールが決められないときはコンピュータで処理できません、人の担当ですネ  

sky_blue77
質問者

お礼

再度ご回答りがとうございました。 ご指摘の通り、ルールに問題があるように感じました。 何とか自動計算させたかったのですが、ルール化が出来ないとコンピューター処理は出来ないですよね。 再度エクセルで自動計算する部分等のルールを見直してみます。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

↓こんなことなんだろうが、データの並びがどうなっているのか不明だし、「A列<=5であればその各行のB列の総和を1で割り切り上げたいです」をどこに書いてどこに書かないのかわからない。↓はその条件のセルには全部書かれる。 =IF(A1>=5,ROUNDUP(B1/A1,0),SUMIF($F$25:$F$32,"<5",$G$25:$G$32))

sky_blue77
質問者

お礼

ご回答ありがとうございます。 エクセル関数の知識が乏しいため説明不足ですみません。 自分自身が行おうとしていることが感性の部分も入っているのかもしれません。 これからも知識を身に付けていき、質問の内容を理解して頂けるように致します。 <PS> 真の部分は理解出来ましたが、偽の部分のF列25~32行目、G列25行目~32行目の意味が理解出来ませんでした。 突然F列とG列が出てきてしまったので・・・。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

C2に =IF(A2>5,ROUNDUP(B2/A2,0),IF(A2=MIN(A:A),ROUNDUP(SUMIF(A:A,"<5",B:B)/1,0),""))        ^ 下フィルのことでしょうか? 1で割り切り上げたいがわかりませんが

sky_blue77
質問者

お礼

ご回答ありがとうございます。 説明不足ですみません。 何かこの式にヒントがありそうな感じがします。 また考えてみます。

  • n4330
  • ベストアンサー率24% (215/872)
回答No.1

  >A列>5であればB列/A列をA列の倍数で切り上げ、A列<=5であればその各行のB列の総和を1で割り切り上げ この中で「B列の総和を1で割り」の意味が理解できませんが、私の理解する式は =ROUNDUP(IF(A1>5,B1/A1,B1),0) A1>5ならB1/A1を切り上げる・・・1行目、2行目の例 A3<=5ならA3/1を切り上げる・・・3行目の答えにならない(0.5を1で割る=0.5、切り上げると1)  

sky_blue77
質問者

お礼

ご回答ありがとうございました。 説明不足ですみません。 上手く伝えられるか自信がありませんが、 【1行目】 *2行目も同じ  A1>5なので  A2をA1の倍数で切り上げて59.1⇒60  そしてこの切り上げた数字をA1で割りC1=3 【3行目&4行目】 ※対象範囲は最初に手動で指定するのかなあ?  A3<=5、A4<=5なので、  B3+B4=0.5+1=1.5  小数点以下を切り上げてC3=2 と関数で自動計算を行いたいです。 誠に申し訳ございませんが、よろしくお願い致します。

関連するQ&A

専門家に質問してみよう