No.6ベストアンサー
- 回答日時:
長くなるので例として、xで4通り、yで3通りを書いてみました。
内容は無茶苦茶です。If ・・・ Then ・・・ ElseIf ・・・ Else ・・・ End If と
Select Case Case ・・・ Case ・・・ End Select を例示しています。
ユーザー定義関数の名前に使った『Hantei』に判定(処理)結果が入ります。
8×16通りでも長くなるだけで特に問題はないと思います。要は場合分けを完全に書くことでしょうか。
ツール→マクロ→Visual Basic Editor でVBE画面に移り、
挿入→標準モジュールで標準モジュールを挿入し、
Public Function ユーザー定義関数名<自分で決めます>(引数1,引数2) のように書いていきます。
シートで使う時は、例では、=Hantei(-2,0) や =Hantei(A1,B1) 、 =Hantei(A1+A2,B1) のようにして使います。
詳しくはHelp等を参照して下さい。
Public Function Hantei(x As Double, y As Double) As Double
Application.Volatile '自動再計算関数にする(作り手の選択です)
If x < 0 Then
Select Case True 'Case の次の判別式が成立すれば次を行う
Case y < 0: Hantei = x + 101
Case y = 0: Hantei = 10 * x + 102
Case 0 < y: Hantei = 1000 * x + 103
End Select
ElseIf x = 0 Then
Select Case True
Case y < 0: Hantei = 201
Case y = 0: Hantei = 202
Case 0 < y: Hantei = 203
End Select
ElseIf 0 < x And x <= 1 Then
Select Case True 'この場合はElseでも同じ
Case y < 0: Hantei = x - y + 301
Case y = 0: Hantei = 302
Case Else: Hantei = x + 10 * y + 303
End Select
Else
Select Case True
Case y < 0: Hantei = x ^ 2 + y ^ 2 + 401
Case y = 0: Hantei = 402
Case Else: Hantei = x ^ 2 - y ^ 2 + 403
End Select
End If
End Function
ありがとうございました。
少し希望の光が見えてきた気がします。
今からこの例を参考に作ってみたいと思います。
何かまたありましたら補足に助けるかもしれませんが
よろしくお願いします。
No.5
- 回答日時:
回答じゃないんですが。
関数のネストは、7レベルまで、
引数は、30個までと決まっています。
それから、こういった、はっきりと、
「限度があってできそうもない」とわかっている場合には、
一つのセルに数式を納めよう、
と、考える方がそもそもまちがいだと思いますよ。
複数のセルを利用して、計算式作った方がいいとおもいます。
で、その複数のセルを利用して、
計算式を利用するように発想した方がいいです。
どうしても、一つのセルに納めようとするから、無理が生じます。
一つのセルに納めなければ、
計算式や、値をひっぱってくる方法は、いくらだってありますよね。
No.4
- 回答日時:
Aの条件、Bの条件がどのような内容かで解決方法も色々ありそうです。
(1)連続数値が条件の場合
=Choose(・・・)や 対応テーブルを作って =Index(・・・)を利用
(2)ある範囲に含まれる時に対応する値を返す場合
対応テーブルを作って =VLookUp(・・・) を利用
(3)各条件が複雑な場合や複数の値を条件にする場合
これを1つのセルで行うにはユーザー定義関数が考えられます。
(3-1)場合分けが規則的に分岐していく場合
If (条件A) Then
If (条件A-1) Then としたほうが分かりやすい場合もあります。
(3-2)場合分けが値や連続的な場合
Select Case 値
Case 値1: 処理1
Case 値2: 処理2
:
のように書けます。(1)のVBA版ですね
(3-3)場合分けが複雑な場合
当然、If ・・・ Then ・・・ Else ・・・ で書けます。(2)のVBA版。他に、
Select Case True
Case 条件1: 処理1
Case 条件2: 処理2
:
のように書けます。Ifよりも分かりやすくなることが多いと思います。
(4)判定をする目的が区分分けして集計したりする目的の場合は、ピボットテーブルや集計機能、フィルタ機能を使えば簡単になる場合があります。
ご参考に。では。
この回答への補足
すみません。条件が不足していました。
条件は2つあってこれをAとBで表すと、Aには8通り、Bには16通りあるのです。
だからAかつBでその答えが8×16=128通りの答えを用意しなくてはなりません。
(その答えには数値も計算式もあります)
皆さんの言うようにIFのネストだと数が限られてくるので
ユーザー定義の関数を作るのが一番いいのでしょうが
これまで挑戦したことがないので不安があります。
日にちもあまりないのでうまく解決できるものか…。
知恵を貸してください。
No.3
- 回答日時:
たしか関数のネストは8くらいだったと思う。
それに関数が長くて見づらくなるので、
自分でFunctionを作成して、それをセルで
使いましょう。
Function 多数分岐(値 As Variant)
Select Case (値)
Case 1
多数分岐 = "壱"
Case 2
多数分岐 = "弐"
Case 3
多数分岐 = "参"
Case Else
多数分岐 = "あてはまらん"
End Select
End Function
条件や値をメンテナンスする必要が
無いならこれが簡単。
No.2
- 回答日時:
IF(A,A',IF(B,B',IF(C,C',D')))
このようにIFの中にIFを入れ、その中にまたIFを入れる、こういうやり方をネストすると言い、しばしば使われる手法です。上の例は3つネストしていると言います。
ただし、ネストには限界が有るのですが、ヘルプで確かめられると思いますよ。
No.1
- 回答日時:
複数作る場合は以下のように続ければ良いと思います。
=if(セル)=A,A',if(セル)=B,B'・・・・
式が非常に長くなるのでLOOKUPの方が良いのではないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Excel(エクセル) Excelでの複数条件のカウントについて 1 2022/09/25 07:40
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) if関数とifs関数は組み合わせることはできますか。 セルA1が「A」のとき「向日葵」と表示。 セル 4 2023/02/02 20:48
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Excel(エクセル) COUNTIFSについて 2 2022/08/30 14:48
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
勃起する時って痛いんですか? ...
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
2つの数値のうち、数値が小さい...
-
ある範囲のセルから任意の値を...
-
【Excelで「正弦波」のグラフを...
-
これって喉仏ですか? 私は女性...
-
Excelで""で囲む方法
-
至急!尿検査前日にオナニーし...
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
甲状腺が腫れているが血液検査...
-
尿検査前日に自慰行為した時の...
-
筋トレするとチンコが縮んじゃ...
-
Excel 数値の前の「 ' 」を一括...
-
エクセル指定した範囲からラン...
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
尿検査の前日は自慰控えたほう...
-
精子が黄色?
-
中出しをするとお腹が痛い・・・。
-
EXCELで条件付き書式で空白セル...
-
口の中に黒い血の塊
-
これって喉仏ですか? 私は女性...
-
2つの数値のうち、数値が小さい...
-
納豆食べた後の尿の納豆臭は何故?
-
EXCELで式からグラフを描くには?
-
小数点以下を繰り上げたものを...
-
excelでsin二乗のやり方を教え...
-
エクセル指定した範囲からラン...
おすすめ情報