ある数値を分類わけする式が作りたいのですが
ぜんぜん分かりません。誰か助けてください。

セルA1の値が
100以上ならA、100以下ならBを返す式を下記のように作ってみました。

=IF(OR(A1=100,OR(A1>100,)),"A","B")

これに
100以上200以下はCという情報を入れたいのです。

どうやればいいですか??
誰か教えてください。
困ってます。

これで言ってる意味伝わるのでしょうか?それもとても不安です。。。。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

Orの使い方が違っていると思い、記載します。



> =IF(OR(A1=100,OR(A1>100,)),"A","B")
=IF(OR(A1=100,A1>100),"A","B")

の方がすっきりすると思うのですが。(関数が増えると重くなるし)

>100以上200以下はCという情報を入れたいのです。
=IF(OR(A1=200,A1>200,),"A",if(OR(A1=100,A1>100),"C","B"))

でいいと思います。
勿論、ORを使うよりも >= を使った方が関数が減って良いと思いますが。
    • good
    • 0
この回答へのお礼

みなさん、お答えありがとうございます。
すぐに沢山お返事がきて、しかも簡単なやり方教えてもらえて、すごい感謝です。
ORもIFも他の人が使っているのの見様見真似なので全然わかってないのでした・・・・。
ほんとうにありがとうございます。

お礼日時:2001/11/13 12:32

以下の方法はいかがですか。


式をセルにセットするのではないのでお気に召さないかも
知れませんが、クラス分けが少数で有れば、素朴な(?)
方法でしょう。
1行目は項目見出しとする。
エクセルのデータのあるシートで
(1)メニューの「データ」をクリック
(2)「フィルタ」をクリック
(3)「オートフィルタ」をクリック
(4)下三角が第1行に出るので分類したいデータの列分  をクリック
(5)「オプション」をクリック
(6)左上のボックスに200を入力
(7)左上のボックスに「より大きい」か「以上」をクリック
(8)「OK」をクリック
(9)条件にかなった行のみ表示される。
(10)2行目に「C」(=クラスコード)を入力
(11)第3行から最下行まで値(=C)をコピー
(12)「199」「以下」として、同じ方法で操作し、   Bをセット
(13)「99」「以下」も同じく操作し、Aをセットする。
   99以下の分は一旦「B」でセットしたコードをA で置きかえることになることを注意
    • good
    • 0

=IF(AND(A1>=100,A1<=200),"C",IF(A1<100,"B","A"))


でどうでしょうか?

>セルA1の値が
>100以上ならA、100以下ならBを返す式を下記のように作ってみました。

もっと簡単にできますよ
=IF(A1>=100,"A","B")

ただ、以上も以下もその数値を含むので、100以上ならA、100以下ならB
というのはできません。(100はAでもあり、Bでもあるってのはありえませんね)
    • good
    • 0

=IF(OR(A1=100,OR(A1>100,)),IF(A1<200,"C","A"),"B")


で出来ると思いますが?

それと、
=IF(A1>=100,IF(A1<200,"C","A"),"B")
ってしては駄目なのです?
(ORを使う必要性が、解らないのですが...。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルではIF関数なのにアクセスではIIF関数?

なぜエクセルではIF関数なのにアクセスではIIF関数?

IF関数はアクセスではIIF関数になりますが、
なぜ「I」が増えるのでしょうか?

またIF関数はイフ関数と読みますが
IIF関数は「イイフ」関数と読めばいいのでしょうか?

よろしくお願い致します。

Aベストアンサー

>エクセルではIF関数なのにアクセスではIIF
アクセスでも、形だけについて言えば(関数とステートメントの違いはあるが形だけで言うと)
・クエリのグリッドで使う場合と
・VBAのモジュールで使う場合と
・アクセスのSQL文でどうか
あります。
アクセスでもVBAではIFは使えます。
クエリのグリッドではIFは使えないようだ(「式に未定義関数Ifがあります」、のエラー)。
SQLではIF,IIFは使えません。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=14014&KLOG=29
エクセル関数にも、IIF関数が増えたかと思ったが、まだ増えてないようだ。
エクセルでもVBAではIifが使えます。
伝統的にIIFがアクセスの方で設けられている。理由は聞いても誰にもわからないのではないか。
ーー
読み方は、ここに質問するより、Googleなどで照会するのが良い。
(こういう一般的な質問は、ここよりGoogleなどの照会のほうが良い。)
「iif 読み方」で照会。
「アイイフ」が多いようだ。
http://barbwire.blog49.fc2.com/blog-entry-43.html ほか

>エクセルではIF関数なのにアクセスではIIF
アクセスでも、形だけについて言えば(関数とステートメントの違いはあるが形だけで言うと)
・クエリのグリッドで使う場合と
・VBAのモジュールで使う場合と
・アクセスのSQL文でどうか
あります。
アクセスでもVBAではIFは使えます。
クエリのグリッドではIFは使えないようだ(「式に未定義関数Ifがあります」、のエラー)。
SQLではIF,IIFは使えません。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=14014&KLOG=29
エクセル関数に...続きを読む

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

QエクセルIF関数について

エクセルIF関数について

お世話になっております。エクセルのIF関数について教えてください。

例えばA1に任意で入力する数字があるとします。
このA1の数字が4以下なら○、10以上なら×、5-9の間なら何も表示しないというような関数を組みたいのですが、どなたか教えていただけないでしょうか?

たぶん、IF関数だと思いますが、もし違うならその関数を教えてください。
よろしくお願いします。

Aベストアンサー

=IF(A1<=4,"○",IF(A1>=10,"×",""))

Q【EXCEL】数式=SUM(A1*B1+A2*B2+・・・+A100*B100)を簡略化したい

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

Aベストアンサー

積の合計なら
=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?

QエクセルのIF関数について

エクセルのIF関数について

お世話になっております。
エクセルのIF関数について教えてください。
あるセルの値がエラーなら0、数値が入っているなら、その数値をそのまま表示するという
関数を作りたいのですが、どのようにすればよろしいでしょうか?

Aベストアンサー

A1セルが空の場合には空で、エラーや数値でなければ0、数値であればその値を表示するとのことでしたら次のような式にないますね。

=IF(A1="","",IF(ISNUMBER(A1),A1,0))

QSUMPRODUCT($A$1:$A$10,$B$1:$B$10)とSUMPRODUCT($A$1:$A$10*$B$1:$B$10)

エクセルのSUMPRODUCT関数についてお尋ねします。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)
の違いは何でしょうか?
両者とも同じ答えを返しますが、いろいろ試したところ、前者は範囲内に文字列があってもそれを無視して計算し、後者は文字列があればエラーになるようですが、その理解で正しいでしょうか?
正しいとすれば、なぜでしょうか?

Aベストアンサー

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算するように出来ています。最初、SUM関数に対し、そのように作られました。プログラムとしては、初歩的なものですが、そのアイデアは、今日まで、踏襲しているようです。このオリジナルの仕組みを考えたのは、VisiCalc の開発者、ブルックリン氏です。昔々、本で読んだことがあります。 PRODUCT関数とも共通です。3つの関数は、同じような仕様を持っています。

こちらが、本来の使い方です。

=SUMPRODUCT($A$1:$A$10,$B$1:$B$10)

つまり、
$A$1:$A$10 と $B$1:$B$10 の値を別々に取得しています。

では、
=SUMPRODUCT($A$1:$A$10,$B$1:$B$11)

とすると、なぜ、エラーが出るかというと、$B$11 に対応する数値が、NULL値(有効な値がない)だからです。それは、全体に反映させてしまいます。(理由は分かると思いますが、プログラムが途中で、エラーで止まってしまうからです)

ところが、こちらは、

=SUMPRODUCT($A$1:$A$10*$B$1:$B$10)

$A$1:$A$10*$B$1:$B$10 は、分割出来ません。したがって、この数式の中でのエラーは、そのまま、元の数式に反映されます。

ご自分で、ユーザー定義関数を作ってみれば分かります。VBAでも、同じように作ることが可能です。一度、試してみるとよいです。

こんばんは。

配列計算をしているのは言うまでもありませんが、この、SUMPRODUCT は、必ず、内部のひとまとまりから計算するという性質を持っています。ただ、VBAのように左から時系列かどうかは、言語が違いますから、分かりません。しかし、この引数は、パラメータ配列になっています。そして、その引数それぞれの有効値を調べて、それを演算出来る値かどうか調べます。

文字列を入れてもエラーにならないのは、元々、そこに注釈などを入れるために考えられたものです。値を文字列か数値かを精査して演算...続きを読む

QエクセルIF関数について

エクセルIF関数について

A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。
という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。

IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか?

どなたか教えてください。

Aベストアンサー

関数では別のセルに値を代入する事はできませんので以下の方法になりますが如何でしょうか。
A2に=IF(A1="8:00"*1,A1,"")
A3に=IF(A1>"8:00"*1,A1,"")
因みにA2:A3は、セルの書式設定→表示形式で「時刻」から選択して下さい。

Q=IF(A1<10,TEXT(A1,"0.0"),A1) に<1の時を加えたい

よろしくお願いします。いつもお世話になっています
エクセルは2013です
下記の式1と式2を1つの式で表現したいのですが、どう書いたらいいでしょうか
なんか無理そうな気がしますが、方法があれば教えてください

式1
=IF(A1<10,TEXT(A1,"0.0"),A1)
式2
=IF(A1<1,TEXT(A1,"0.00"),A1)

Aベストアンサー

=IF(A1<1 ,TEXT(A1,"0.00") ,IF(A1<10 ,TEXT(A1,"0.0") ,A1) )

「1より小さい」の条件が成立していなければ、そのまま「10より小さい」の条件で比較。

Qエクセル IF関数で質問です。

エクセル IF関数で質問です。

教えてください。下記の式はどういう意味ですか?
=IF(I38=0,"",SUM(C38:I38)/$B$38)

なかなかIF関数が覚えられません。簡単に理解できる方法はありませんか?

IFを入力するときにみなさんはどうイメージしてますか?

アドバイスください。

Aベストアンサー

>なかなかIF関数が覚えられません。

恐らく、IF 関数だけの問題ではありません。一つひとつの基礎知識の積み重ねです。この回答文を最後まで読んでみてください。

>簡単に理解できる方法はありませんか?

簡単な数式から超難解なものまで、様々なレベルがあります。お示しの数式は 2 つの関数を入れ子にしているので、最も単純な IF の使い方と比べれば、少しだけ難しくなっています。

>IFを入力するときにみなさんはどうイメージしてますか?

パソコンに最初に触れた頃は、どうだったでしょうね。今となっては、無意識です。

たまに複雑な数式を入力するときは、括弧の数が分かりづらいとかで、迷うというか時間がかかることもなくはないですが。難しくしようと思えば、幾らでも難しくなります。

基本的に私の場合は、Excel の「数式パレット」(fx ボタン)は使わずに数式をタイプすることを人にお勧めしています。数式パレットでは、数式が複雑になるほど入力しづらく、数式そのものに関する理解も進みにくいと考えているからです。「数式バー」などに直接タイプして入力していても、ヒントが適当にポップアップしてきたりします。インターネット上には、関数についての無数の情報もあります。いきなり難しい数式はムリでしょうが、だんだん色々なものを覚えていけばよいでしょう。


1.
セルに「数式」を入力するとき、先頭の「=」(今回の場合は IF の直前の「=」)は、「これから数式を記述しますよ」という Excel へのお知らせをしているのですが、それより後ろに「=」が出てくると、別な意味になります。「I38=0」のような等式あるいは不等式を「論理式」と呼んでいます。条件によっては、「I38>0」、「I38>=0」、「I38<0」、「I38<=0」、「I38<>0」が出てくることもあります。「>=」は「≧」の意味、「<>」は「≠」の意味です。

2.
論理式は、「論理値」を返します。Excel では「TRUE」、「FALSE」という 2 種類の論理値があります。I38 セルに 0 が入力されているか空白のとき、「I38=0」は TRUE に変化します。それ以外の場合は、FALSE になります。

3.
「"エクセル"」は、「エクセル」という「文字列」を数式中に混ぜるときの記述の仕方です。「""」は、「長さ 0 の文字列」です。これがセルに入力されていると、何も表示されないので見かけが空白のように見えます。私は空文字列と呼んでいることが多いのですが、最善の短い呼称は未だに分かりません。空白の文字列と言う人もいますが、厳密には空白ではないので、各種分析において「""」の存在がデメリットになるケースもあります。

4.
「C38:I38」は、「C38 セルを左上の頂点とし、I38 を右下の頂点とする長方形の『セル範囲』への『参照』」を意味する記号です。つまり C38~I38 という 1 行 7 列の範囲を参照します。

5.
SUM は、合計する関数です。その「引数」(ひきすう)にセル参照を書くと、範囲内にある「数値」を全て合計します。上の範囲であれば、「C38 の値 + D38 の値 + … + I38 の値」という計算結果の値を返します。なお、(参照で登場する場合の)文字列は「0」として合計します。SUM に限ったことではありませんが、関数が返す値(SUM であれば合計)を数式の途中に引用する場合は、その直前に「=」を付けません。しかし IF などを絡めず単にセルに合計を表示させたい場合は、「=sum(c38:i38)」と入力します。大文字/小文字の別は、多くの場合、混ぜこぜに書いても大丈夫。

6.
「/」は、数学における分数であり、「÷」でもあります。Excel ではいつも「/」と書きます。「*」は、「×」(掛け算)の意味です。「10^6」は、「10 の 6 乗」の意味です。

7.
「$B$38」は「絶対参照」、「B38」だと「相対参照」です。この違いは、参照が使われている数式(ご質問の IF の数式など)が入力されているセルを別の場所にコピペしてみるとよく分かります。貼り付けたセルの数式を見ると、相対参照では、「B」という「列番号」と「38」という「行番号」が別のものに書き換わっています。別のものというのは、参照元と参照先の相対的な位置関係を保持した番号になるということ。つまり、2 行下で 3 列右などといった、元の位置関係のことです。絶対参照では番号が書き換わらず、「$B$38」のまま固定されています。「B$38」とすると「$38」の部分のみ固定、「$B38」とすると「$B」の部分のみ固定となり、残りは書き換わります。ですから「$」は、数式をコピーするときに必要となる記号と考えればよいでしょう。コピーの中には、「オートフィル」も含まれますね。ドラッグやダブルクリックで多数のセルを埋める、あの機能です。

8.
IF は、二者択一の場合分けをする関数。第 1 引数が TRUE または非ゼロの数値であれば、第 2 引数を返します。第 1 引数が FALSE またはゼロという数値であれば、第 3 引数を返します。第 1 引数が文字列であれば、「#VALUE!」という「エラー値」を返します。

以下は、例を示します。各数式を Excel の数式バーに貼り付けるか、セルをダブルクリックして貼り付けて、結果を確かめてみてください。二つに一つの結果を選んでいるだけのことなので、実は簡単ですね?

=if(false,"エクセル","ワード")
=if(-1.2,"エクセル","ワード")
=if(0,"エクセル","ワード")
=if(,"エクセル","ワード")  ……「0」の省略

A1、B1 セルに入力されている値によって結果が変わる
=if(a1-b1,"エクセル","ワード")
=if(a1-b1>0,"エクセル","ワード")
=if(a1-b1>0,12,-0.3)
=if(a1-b1>0,a1-b1,a1)
=if(a1-b1>0,sum(a1:b1),sum(a1:b1)^2)
=a1+if(b1>0,b1,0)

>なかなかIF関数が覚えられません。

恐らく、IF 関数だけの問題ではありません。一つひとつの基礎知識の積み重ねです。この回答文を最後まで読んでみてください。

>簡単に理解できる方法はありませんか?

簡単な数式から超難解なものまで、様々なレベルがあります。お示しの数式は 2 つの関数を入れ子にしているので、最も単純な IF の使い方と比べれば、少しだけ難しくなっています。

>IFを入力するときにみなさんはどうイメージしてますか?

パソコンに最初に触れた頃は、どうだったでしょうね。今となっ...続きを読む

Qエクセルの列表示を1,2,3,からA,B,C,に戻したい。

初期状態では、エクセル行は1,2,3,~、列はA,B,C,~となっていると思いますが、先日知り合いからもらったエクセルファイルは列も1,2,3,~となっていました。
どうしたら、A,B,C,~に戻せますでしょうか?
教えて下さい。

Aベストアンサー

「ツール」→「オプション」→「全般タブ」で「R1C1参照形式を使用する」のチェックを外して下さい


人気Q&Aランキング

おすすめ情報