(1)A1が0のとき、0。
1のとき、固定の数値100(仮)。
2以上のとき、固定の数値300(仮)。
上の条件では、数値は2種類しかありません。
さらに、A2が0のとき、そのまま。
1のとき、そのまま。
2のとき、2倍。
3のとき、3倍、、、、、、、、。
という数値を、A3に返したい。
(2)A1が0のとき、0。
1のとき、A2*0.4のプラスマイナスを逆転させた数値。
2以上のとき、0。
で、さらにA3が0のとき、そのまま。
1のとき、そのまま。
2のとき、2倍。
3のとき、3倍、、、、、、、、。
という数値を、A3に返したい。
(3)A1が0のとき、0。
1のとき、固定の数値100(仮)。
2以上のとき、固定の数値100(仮)*2。
で、さらにA2が0のとき、そのまま。
1のときは、固定の数値100(仮)*3。
2のときは、固定の数値100(仮)*4。
3のときは、固定の数値100(仮)*5、、、、、、。
で、A3が0のときは、0(A1、A2関係なく)。
1のときは、そのまま。
2のときは、上記の数値の倍。
3のときは、上記の数値の3倍、、、、、、、。
という数値を、A4に返したい。
このときの、数式を教えて欲しいのです。
とても分かりずらいと思いますが、どなたか教えていただけないでしょうか。
No.7ベストアンサー
- 回答日時:
こんばんわ。
#4の補足に書かれた条件でサンプルマクロを組むと下記の様になります。Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Then Exit Sub
If Range("B1").Value = 1 Then
Call Sheet1.myKeisan1
ElseIf Range("B1").Value = 2 Then
Call Sheet1.myKeisan2
End If
End Sub
Sub myKeisan1()
Select Case Range("A2").Value
Case 0
Range("A4").Value = 0
Case 1
Select Case Range("A3").Value
Case 0, 1
Range("A4").Value = 100
Case 2
Range("A4").Value = 200
Case 3
Range("A4").Value = 300
End Select
Case 2
Select Case Range("A3").Value
Case 0, 1
Range("A4").Value = 200
Case 2
Range("A4").Value = 400
Case 3
Range("A4").Value = 600
End Select
End Select
End Sub
Sub myKeisan2()
Select Case Range("A2").Value
Case 1
Select Case Range("A3").Value
Case 0, 1
Range("A4").Value = CInt(Range("A1").Value) * -1
Case Else
Range("A4").Value = CInt(Range("A1").Value) * CInt(Range("A3").Value) * -1
End Select
Case Else
Range("A4").Value = 0
End Select
End Sub
もし、このマクロの操作方法をお知りになりたい時は、お知らせ下さい。
何度も回答ありがとうございます。
じっさいマクロを走らせてみましたが、
やはり素人の私には少し難しいようです。
今回の件は、質問には書かなかったのですが、
そういったセット(今回のを1セットとして)同じシートで7セット作らなくてはいけなくて、そのためやはり数式で表現したいです。
今回の質問は、少し抽象的すぎ、反省しております。
今回は、とりあえず締め切ります。次回、近いうちに具体的な数字と、その数式を使用するのあたっての状況を詳しく書いて、また質問を投稿したいと思います。
そのときは、また協力していただけるとありがたいです。
今回は、マクロの作り方が分かり、少しエクセルの知識が増えたような気がします。
ほんとに、ありがとうございました。
No.6
- 回答日時:
こんばんわ。
投稿ボタンを間違えて押してしまいました。#3の補足で書かれた条件でサンプルマクロを組んでみました。シート1の1行目は、マクロを動作させるために必要な行として使わせていただきますので、データの入力は2行目以降になります。マクロもミスが見つかりましたので、下のマクロを使って下さい。まず、次のようにマクロを新規ブックにコピー&ペーストして下さい。
・新規ブックを開き、ALT+F11キーを押してVBE画面を表示させ、画面左上のVBAProjectと書かれている下のSheet1をダブルクリックして表示された画面の右側の白い部分に下記のコードをコピー&ペーストする。
ALT+F11キーでエクセルの画面にもどり、次のように操作します。
1.A2以降にデータを入力する。
2.最後に、A1で計算の方法を指定する。(A1を抜けた時点でマクロが走りますので、一番最後に指定しないとエラーが起こる場合があります。)
計算方法の指定の仕方
(1)の時1・(2)の時2・(3)の時3(数字は半角英数で指定して下さい。)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Range("A1").Value = 1 Then
Call Sheet1.myKeisan1
ElseIf Range("A1").Value = 2 Then
Call Sheet1.myKeisan2
ElseIf Range("A1").Value = 3 Then
Call Sheet1.myKeisan3
End If
End Sub
Sub myKeisan1()
If Range("A2").Value = 0 Then
Range("A5").Value = 0
Else
Range("A5").Value = 36000
End If
End Sub
Sub myKeisan2()
Select Case Range("A2").Value
Case 1
If Range("A3").Value = 0 Then
Range("A7").Value = 14000 * -1
Else
Range("A7").Value = 14000 * CInt(Range("A3").Value) * -1
End If
Case Else
Range("A7").Value = 0
End Select
End Sub
Sub myKeisan3()
Select Case Range("A2").Value
Case 0, 1, 2
Range("A6").Value = 0
Case 3
If Range("A4").Value = 1 Then
If Range("A3").Value = 0 Then
Range("A4").Value = 6500
Else
Range("A4").Value = 6500 * CInt(Range("A2").Value)
End If
End If
Case 4
If Range("A4").Value = 1 Then
If Range("A3").Value = 0 Then
Range("A4").Value = 6500
Else
Range("A4").Value = 6500 * CInt(Range("A2").Value)
End If
ElseIf Range("A4").Value = 2 Then
If Range("A3").Value = 0 Then
Range("A4").Value = 13000
Else
Range("A4").Value = 13000 * CInt(Range("A2").Value)
End If
End If
End Select
End Sub
もし、マクロを動作させるために1行目を使わない方がよろしければ、他の方法でマクロを動作させることも可能です。その時は、お知らせいただければそのようにマクロを変更させていただきますので、ご遠慮なくお知らせ下さい。
No.5
- 回答日時:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Range("A1").Value = 1 Then
Call Sheet1.myKeisan1
ElseIf Range("A1").Value = 2 Then
Call Sheet1.myKeisan2
End If
End Sub
Sub myKeisan1()
If Range("A2").Value = 0 Then
Range("A5").Value = 0
Else
Range("A5").Value = 36000
End If
End Sub
Sub myKeisan2()
Select Case Range("A2").Value
Case 1
If Range("A3").Value = 0 Then
Range("A7").Value = 14000 * -1
Else
Range("A7").Value = 14000 * CInt(Range("A3").Value) * -1
End If
Case Else
Range("A7").Value = 0
End Select
End Sub
Sub myKeisan3()
Select Case Range("A1").Value
Case 0, 1, 2
Range("A6").Value = 0
Case 3
If Range("A3").Value = 1 Then
If Range("A2").Value = 0 Then
Range("A3").Value = 6500
Else
Range("A3").Value = 6500 * CInt(Range("A2").Value)
End If
End If
Case 4
If Range("A3").Value = 1 Then
If Range("A2").Value = 0 Then
Range("A3").Value = 6500
Else
Range("A3").Value = 6500 * CInt(Range("A2").Value)
End If
ElseIf Range("A3").Value = 2 Then
If Range("A2").Value = 0 Then
Range("A3").Value = 13000
Else
Range("A3").Value = 13000 * CInt(Range("A2").Value)
End If
End If
End Select
End Sub
No.4
- 回答日時:
初めまして。
(1)で、
・A1が0の時
A2が0・1・2・3であってもA3に0を表示
・A1が1の時
A2が0・1ならばA3に100(仮)を表示
A2が2ならば、A3に200(仮)を表示
A2が3ならば、A3に300(仮)を表示
・A1が2の時
A2が0・1ならばA3に300(仮)を表示
A2が2ならば、A3に600(仮)を表示
A2が3ならば、A3に900(仮)を表示
ということでよろしいのでしょうか。
(2)についても同様の考え方でよろしいのでしょうか?
(3)についても同じような要領で条件を書いていただけないでしょうか。
このないようでは、貴方様のおやりになりたいことがよく理解できません。
お手数をおかけいたしますが、よろしくお願いいたします。
この回答への補足
>初めまして。
はじめまして。
下のように訂正しました。
(3)は複雑になるのであきらめました。
これで、どうでしょうか。
(1)も若干変更しました。
>(1)
・A1が0の時
A2が0・1・2・3であってもA3に0を表示
・A1が1の時
A2が0・1ならばA3に100(仮)を表示
A2が2ならば、A3に200(仮)を表示
A2が3ならば、A3に300(仮)を表示
・A1が2の時
A2が0・1ならばA3に200(仮)を表示
A2が2ならば、A3に400(仮)を表示
A2が3ならば、A3に600(仮)を表示
>(2)
・A1が0の時
A2が0・1・2・3・4‥であってもA3に0を表示
・A1が1の時
A2が0・1ならばA3に-40(仮)を表示
A2が2ならば、A3に-80(仮)を表示
A2が3ならば、A3に-120(仮)を表示
以下、4以降続きます。
・A1が2以上の時
A2が0・1・2・3・4‥であってもA3に0を表示
No.3
- 回答日時:
>とても分かりずらいと思いますが--良く判らない。
(1)(1)と(2)と(3)の関係は?
(2)例えば(1)で下表のa-lはどうなるのでしょう?
A1とA2の値は両方ともA3の値に影響するのですよね?
A2 |0 |1 |2 |3 |
A1 | | | | |
--|----------
0 | a|b |c |d |
1 | e |f|g |h |
2 | i|j |k |l |
(3)(3)はA1とA2とA3の3項目関連しているのですか?
(4)IF文とVLOOKUP関数のネストで出来そうなんですが
問題文の条件の意味が捉えられない。
(4)符号反転は-1を掛ければよい。
(5)こう言う複雑になると、VBAでIF文のネストCASE文とIFの組み合わせ方が素直に表現できそう。
この回答への補足
はじめまして。
下のように訂正しました。
これで、どうでしょうか。
書いてないセルは反映しなくていいです。
若干変更しました。そして、全てに関連性をもたせました。(1)、(2)、(3)のA1~6は同一セルです。
>(1)
A1が0の時、他のセルに関係なくA5は0を表示
A1が1以上の時、A5に36000を表示。
>(2)
・A1が0の時
A2が0・1・2・3・4‥であってもA7に0を表示
・A1が1の時
A2が0・1ならばA7に-14400を表示
A2が2ならば、A7に-28800を表示
A2が3ならば、A7に-43200を表示
以下、4以降続きます。
・A1が2以上の時
A2が0・1・2・3・4‥であってもA7に0を表示
>(3)
・A1が0・1・2の時
A2、A3が0・1・2・3であってもA6に0を表示
・A1が3の時
A3が1の時
A2が0・1ならばA3に6500を表示
A2が2ならば、A3に13000を表示
A2が3ならば、A3に19500を表示
以下、4以降続きます。
・A1が4の時
A3が1の時
A2が0・1ならばA3に6500を表示
A2が2ならば、A3に13000を表示
A2が3ならば、A3に19500を表示
以下、4以降続きます。
A3が2の時
A2が0・1ならばA3に13000を表示
A2が2ならば、A3に26000を表示
A2が3ならば、A3に39000を表示
以下、4以降続きます。
回答ありがとうございます。
やはり、マクロは素人の私には向いてないようです。
また、次の機会には分かりやすい質問にしますのでよろしくお願いします。
No.2
- 回答日時:
入力した数値に小数部が含まれていても、整数部だけを見る事にします。
負の数値は入力されないことを期待しています。
(1)
=if(int(A1)>=2,300,int(A1)*100)*if(int(A2)<=1,1,int(A2))
(2)
=if(int(A1)=1, -0.4*A2,0)*if(int(A3)<=1,1,int(A3))
(3)
=if(int(A2)=0,min(int(A1),2),int(A2)+2)*100*int(A3)
とまぁ、こんな感じでいかがでしょうか?
ありがとうございます。
やっぱり、数式ですと、アレンジがききますよね。
素人でも「こことここを変えれば・・・」と、とても参考になりました。
ただ、若干こちらの表現のまずさのせいでしょう。
私の意図する結果が出ませんでした。
でも、全部数式で書いてくださってありがとうございました(礼)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) excelにて、ある固定値から連番を振りたいが、上限値が異なる連番を振る処理を複数回行いたい場合 6 2022/10/22 11:01
- Excel(エクセル) 条件付き書式の設定方法を教えて下さい。 2 2023/04/14 18:12
- その他(ソフトウェア) indesignで変形数値入力を変倍しないように固定したい Illustratorにある変形ツールの 1 2022/09/07 15:00
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) Excelのマクロについて 2 2022/06/14 03:38
- 会計ソフト・業務用ソフト エクセル 背景色のついたセル位置を参考にして固定の数値を取得する 4 2022/07/11 08:44
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows XP SP3のインストール...
-
絶対にいけるWindowsXPsp3の無...
-
XPが起動しない、バックアップ...
-
フリープリントソフト「かんた...
-
アウトルックを「タスクバー」...
-
WindowsXPを最近のパソコンに...
-
最近、パソコンを起動するとこ...
-
HDDがフォーマット出来なくなった
-
windows updateについて
-
windows10 フォルダを上書きす...
-
windows xp proが起動しなくな...
-
「96px=1inch(2.54cm)」という...
-
ラズパイでwindows XPは動くのか
-
パソコンでCDを見たい、見る...
-
何故かパソコンのアイコンが動...
-
マカフィーが更新できない
-
プロダクトキー
-
Windows XP x64のKB4018271につ...
-
お気に入りの表示が遅い
-
レ点マークを処理してたらファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
絶対にいけるWindowsXPsp3の無...
-
Windows XP SP3のインストール...
-
WindowsXPを最近のパソコンに...
-
シムズ4(PS4版) マイライブラリ...
-
アウトルックを「タスクバー」...
-
条件付き書式の結果につて
-
WindowsXPのプロダクトキーを紛...
-
メモリ、SSD、HDDの違いを教え...
-
Windows xpにWindows10を無理や...
-
パソコン起動時に謎のエラー画...
-
パソコンでCDを見たい、見る...
-
やっぱり現代のPCにWindowsXPを...
-
フリープリントソフト「かんた...
-
windows 終了時にプログラムを...
-
windows xp proが起動しなくな...
-
windows10 フォルダを上書きす...
-
最近、パソコンを起動するとこ...
-
HDDがフォーマット出来なくなった
-
プロダクトキー
-
ラズパイでwindows XPは動くのか
おすすめ情報