
if関数とifs関数は組み合わせることはできますか。
セルA1が「A」のとき「向日葵」と表示。
セルA1が「B」であるときは
セルA2が
10以下の場合は「松」
20以下の場合は「竹」
30以下の場合は「梅」
と表示し、
上記の条件を満たさないときは
セルA3が
10以下の場合は「桜」
20以下の場合は「桃」
30以下の場合は「菊」
40以下の場合は「楓」
50以下の場合は「紅葉」
と表示。
それ以外は「該当なし」と表示。
↑
こちらをif関数とifs関数を使って値をかえすうにしたいのですがどのように設定するとよいでしょうか。
No.1ベストアンサー
- 回答日時:
Excelのif関数とifs関数を使って、上記の条件を満たす式を作成するには以下のようになります。
if関数を使用する場合:
C1セル: =IF(A1="A","向日葵",IF(A1="B",IF(A2<=10,"松",IF(A2<=20,"竹",IF(A2<=30,"梅",IF(A3<=10,"桜",IF(A3<=20,"桃",IF(A3<=30,"菊",IF(A3<=40,"楓",IF(A3<=50,"紅葉","該当なし"))))))))))
ifs関数を使用する場合:
C1セル: =IFS(A1="A","向日葵",A1="B"&A2<=10,"松",A1="B"&A2<=20,"竹",A1="B"&A2<=30,"梅",A3<=10,"桜",A3<=20,"桃",A3<=30,"菊",A3<=40,"楓",A3<=50,"紅葉",TRUE,"該当なし")
No.4
- 回答日時:
No.3です。
前回回答にミスがありました。>【0以上11未満とのき「松」】(0以上10以下のとき「松」)、【11以上21
>未満とのき「竹」】(10以上20以下のとき「竹」)、・・・という意味になりま
>す。
は誤りで
【0以上11未満とのき「松」】(0以上10以下のとき「松」)、【11以上21未満とのき「竹」】(10超20以下のとき「竹」)、・・・という意味になります。
が正しいことになります。
お詫びして訂正いたします。
No.3
- 回答日時:
>A3が40以下の場合、さらに条件が増えた場合のif関数・・・
というご要望もあるようなので、IF関数一辺倒で突き進むのは難があります。
そこで、VLOOKUP関数を使った例を作成してみました。
添付画像をご覧ください。
VLOOKUPの近似値検索は検索値を超えない最大値を探すという機能があります。そこで、A2の値、A3の値、A4の値について、添付画像のように、ご質問者の説明どおりの条件表を作成しておきます。
このとき、10以下、20以下、30以下・・・という区分を表示するため、E列、H列に10、20、30、・・・という数字が見えていますが、「検索値を超えない最大値を探す」という機能を使って10以下という区分を判別にするために、実際には10、20、30・・・よりわずかに(1/10^13だけ)大きい数値を入力してあります。
※A2、A3に整数しか入力されない場合は「1/10^13」などという面倒な数値ではなく普通に1を足して、11、21、31・・・という数値を入力しておけばよいだけです。この場合、表の見方としては【0以上11未満とのき「松」】(0以上10以下のとき「松」)、【11以上21未満とのき「竹」】(10以上20以下のとき「竹」)、・・・という意味になります。
こうすると、A2、A3の入力値が10、20、30・・・ピッタリの場合ではも、見かけ上の10、20、30・・・が検索される訳ではなく、その一つ上の行が検索されることになります。
さて、ご質問者が説明した条件による判定結果をC1セルに表示させるものとします。C1セルに、
=IF(A1="A","向日葵",IF(A1="B",IFERROR(VLOOKUP(A2,$E$3:$F$6,2,1),IFERROR(VLOOKUP(A3,$H$3:$I$8,2,1),"")),""))
という数式を記述しています(AでもBでもない場合、結果は空白になるようにしました)。また、F6セルに、
=IFERROR(VLOOKUP(A3,$H$3:$I$8,2,1),"")
という数式を記述しています。さらに、I6セルに、
=IFERROR(VLOOKUP(A4,$K$3:$L$5,2,0),"")
という数式を記述しています。
E列、H列の0以外の数値は前述のとおり、見えている数値より1/10^13だけ大きい数値です。また、F列、I列の文字は数式以外は全て固定文字です。
このような仕掛けにしておくことで、「A3が40以下の場合、さらに条件が増えた場合」はA4の値の条件表の最下行に、新たな条件を追加していくことが可能になり、対応が容易になります。

No.2
- 回答日時:
以下の計算式を使用します。
=IF(A1="A", "向日葵",
IF(A1="B",
IFS(A2<=10, "松", A2<=20, "竹", A2<=30, "梅",
IFS(A3<=10, "桜", A3<=20, "桃", A3<=30, "菊", A3<=40, "楓", A3<=50, "紅葉", "該当なし")
), "該当なし"))
追加質問にまで回答いただきましてありがとうございます!
組み合わせることも可能なのですね。
こちらを参考に、問題解決しそうです(^-^)
本当にたすかりました。
感謝いたしますm(._.)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
”戻り値”が変化したときに、マ...
-
ExcelVBAを使って、値...
-
Excel VBA、 別ブックの最終行...
-
Excelで指定した日付から過去の...
-
Excelのプルダウンで2列分の情...
-
DataGridViewのセル編集完了後...
-
Excel VBAで、 ヘッダーへのセ...
-
セル色なしの行一括削除
-
ExcelのVBAで数字と文字列をマ...
-
Excelのハイパーリンクにマクロ...
-
VB.NETで、EXCELの右寄せ
-
i=cells(Rows.Count, 1)とi=cel...
-
実行時エラー438 オブジェクト...
-
VBA ユーザーフォーム ボタンク...
-
エクセルVBAで、非表示にし...
-
VBAで検索して指定の位置に行を...
-
Excel vbaで特定の文字以外が入...
-
Word版VBで表の任意の箇所を...
-
Google Apps Script:Googleスプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報
kokorororo様
とてもわかりやすい回答ありがとうございます!
理解いたしました。
ifとifsを組み合わせることもできるのでしょうか。
たとえば、
=if(ifs(・・・・・
みたいな式です。
いろいろきいてしまって申し訳ありません。
セルA1が「A」のとき「向日葵」と表示。
セルA1が「B」であるときは
セルA2が
10以下の場合は「松」
20以下の場合は「竹」
30以下の場合は「梅」
と表示し、
上記の条件を満たさないときは
セルA3が
10以下の場合は「桜」
20以下の場合は「桃」
30以下の場合は「菊」
※40以下の場合はA4セルが◎のときは「楓」、◯のときは「栗」、✕のときは「百合」
50以下の場合は「紅葉」
それ以外は「該当なし」と表示。
↑
A3が40以下の場合、さらに条件が増えた場合のif関数の式も教えていただけますとたすかります_(._.)_