
はじめまして。
エクセル2016(Mac)環境で関数を作ることを考えているのですが教えてください。
例えば、ある数Aがありまして15000で割り算をした数△(小数点切り捨て)に15000をかけた数値をAから引き算をします。(この計算を以下★と記載致します)
この数字をBとします。
その後、Bが15000以上であれば★を繰り返し、15000未満であるならば、Bに0.5をかけた数値を計算します(この数字をCとします)
こういった計算をした結果、最終的に
6000*△の総数+C
という数値を算出するシートを作りたいのですが、ループを用いた場合どのように組み立てるべきか教えてください。
★を一度だけ行うという計算までは、エクセルで作ることができましたが、
繰り返し行うという動作ができない状況です。
ちなみに、一度だけ行うという計算式は以下の通り作ってみました。これすら根本的に違ったらすみません。。。
=IF(Aが記載されているセル(以下♪)>=15000, ♪-15000*INT(♪/15000)+5000*INT(♪/15000), ♪*0.5)
動きとして期待しているのは以下のような計算結果です。
<<例>>
A=55000である場合、
55000は15000以上であるため、
55000-15000*3+5000*3=25000
25000は15000以上であるため、
25000-15000*1+5000*1=15000
15000は15000以上であるため、
15000-15000*1+5000*1=5000
5000は15000未満のため、
5000*0.5=2500
以上から
5000*(3+1+1)+5000*0.5=25000+2500=30000
ご回答の程をよろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
「関数を作る」とのことですが、「ユーザ定義関数を作る」という理解で良いですか?
であれば、こんな感じでしょうか。
ただ、最初の質問文では、「55000→3000」になっているのに対して、No.2さんへのお礼には「55000→32500」となっています。下記のユーザ定義関数はNo.2さんへのお礼に沿って実装しています。
Function myFuntion(ByVal a As Variant) As Variant
Dim 商の総和 As Long
Dim 商 As Long
Dim 余り As Long
Do
商 = Int(a / 15000)
余り = a Mod 15000
a = 余り + 5000 * 商
商の総和 = 商の総和 + 商
Loop Until a < 15000
myFuntion = 6000 * 商の総和 + a * 0.5
End Function
No.2
- 回答日時:
疑問1
>例えば、ある数Aがありまして15000で割り算をした数△(小数点切り捨て)に15000をかけた数値をAから引き算をします。(この計算を以下★と記載致します)
は<<例>>のどの部分に当たるのでしょうか?
疑問2
>55000-15000*3+5000*3=25000
が一番近いとは思うのですが 5000*3はどこから出てきたのでしょうか?
疑問3
>25000+2500=30000
??
推察1
=INT(55000/(15000-5000))*5000+MOD(55000,(15000-5000))*0.5
でしょうか?
疑問4
>=MOD(Aのあるセル, 15000)+5000*INT(Aのあるセル/12000)
AのあるセルがA1セルとして
B1セルに
=IF(OR(A1="",A1<12000),"",MOD(A1,15000)+5000*INT(A1/12000))
右へオートフィル
それからが意味不明です
ご返信ありがとうございます。
色々説明不足で申し訳ございません。
>疑問2
>55000-15000*3+5000*3=25000
>が一番近いとは思うのですが 5000*3はどこから出てきたのでしょうか?
→15000で割り算をした商を5000でかけるという意味でした。
剰余+5000*商の値(Bとここでは呼びます)が15000を超えなくなるまで、
5000*INT(B/15000)+MOD(B, 15000)*5000
という計算を行い、15000未満になったら
その数値に0.5をかけるという意味でした。
なので、例えば55000を例に出しますと、、、
-----
55000=15000*3+10000
→10000+5000*3=10000+15000=25000
→25000>15000なので、
→25000=15000*1+10000となるので、
→10000+5000*1=15000
→15000>=15000なので、
→15000*1+5000*1=5000
→5000<15000なので、
→5000*0.5=2500・・・(**)
最終的に割り切れた数(商)の総和x6000+(**)を行いたいです。
つまり、、、
6000x(3+1+1)+2500=30000+2500=32500
という数値を求められる計算をエクセルで行いたいと思っております。
わかりにくい質問で申し訳ございません。
ご教示の程をよろしくお願いいたします。
No.1
- 回答日時:
説明が、な~~~~~んかおかしいんだけど…。
まあいいか。
・・・本題・・・
要点だけ。
Aを15000で割ったときの商の小数点以下を切り捨てる
INT(A/15000)
Aを15000で割ったときの余りを求める
MOD(A,15000)
あとは好きにしてください。
(多分、MOD関数の存在を知らないだけなんだろうと思うんだ)
ご返信ありがとうございます。
おっしゃる通りMOD関数とINT関数ですね。
MOD関数がわからなかったので勉強になります。
このMOD関数とINT関数を使った数式、
=MOD(Aのあるセル, 15000)+5000*INT(Aのあるセル/12000)
これが12000未満になるまで繰り返し、
最終的に12000未満になった数値に0.52をかけた値と、
上記の関数で今まで計算した結果の総和を
足し算した結果を返すという処理を行いたいです。
こちらについてご教示いただけたらありがたいです。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) 電卓は正しいのに エクセルで計算させると間違った答えです。なぜ? 7 2022/08/11 07:04
- Excel(エクセル) エクセルのマクロ作成について教えてください 5 2023/02/20 00:39
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
- Excel(エクセル) エクセル VBAでセル内容を別の列の最下行に転記したい 2 2022/11/29 08:47
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AかBに入力があった時Cに反映、...
-
エクセルで、時間の計算をした...
-
Excel(エクセル)でフィルター...
-
エクセルで比率を計算
-
エクセルでDeleteキーを...
-
ヘッダー
-
エクセル 1万時間を越える際の...
-
エクセル・計算式をテキストデ...
-
エクセルで足し算と掛算を混ぜ...
-
エクセル2010 関数が無効...
-
エクセル2000 動作が非常に遅い
-
エクセルで、マイナスの場合一...
-
TEXTCALCの使い方
-
EXCELの関数に関する質問です
-
IF関数で出した数値をSUM関数で...
-
【エクセル】あるセルのみ自動...
-
エクセル97で関数同士の計算...
-
多項式の計算
-
エクセルの計算式
-
計算結果が0なら空白にしたい。...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ヘッダー
-
AかBに入力があった時Cに反映、...
-
エクセルの使い方 1日=7時間45...
-
Excel 関数? 文字列に...
-
数式の計算結果により表示され...
-
エクセルで、時間の計算をした...
-
Excelの文字入力にタイムラグが...
-
エクセルでの時間計算(2時間30...
-
エクセル・計算式をテキストデ...
-
EXCELの関数に関する質問です
-
エクセル 1万時間を越える際の...
-
IF関数で、時間を条件にしたい...
-
エクセルでDeleteキーを...
-
エクセル 月数を0.5ヶ月単位で...
-
IF関数で出した数値をSUM関数で...
-
エクセルで足し算と掛算を混ぜ...
-
【エクセル】あるセルのみ自動...
-
エクセルで同じ計算式を入れて...
-
TEXTCALCの使い方
-
sum 範囲を横に可変したいです...
おすすめ情報