- ベストアンサー
Excel IF関数
宜しくお願いします。IF関数なのですが、 例えば、A1~X1まで数字が記載されてるセルもあれば、記載されてないセルもあります。それかランダムに200行ぐらいまであるとします。そこで (1)例えばI列とP列、V列の数字の比較をするとして、I列を基準に考えるとします。 (2)I列に入力がなければ空白 (3)P列とV列両方共記載がなければ空白 (4)P列とV列どちらかに記載があればIと比較してI列の方が小さければ〇大きければ空白とします どのような式をつくればいいでしょうか?お力お貸し下さい。 (4)
- nafun0404
- お礼率47% (73/153)
- Excel(エクセル)
- 回答数9
- ありがとう数2
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
> 写真のようにPとVが空白セルなのに〇がついていまいました。 画像が不鮮明で見えなかったですし、現在は画像がありません。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(P1="",V1=""),IF(OR(V1>I1,P1>I1),"○",""),IF(AND(V1>I1,P1>I1),"○",""))) この式でですか。実際に空白(データがない状態)ですか、もしかしてスペースキーで空白のスペースを入れて見た目が何もないようにしていませんか(もしそうなら、余程の理由がない限りそのようなことはやめましょう)
その他の回答 (8)
- bunjii
- ベストアンサー率43% (3589/8248)
>例えば、A1~X1まで数字が記載されてるセルもあれば、記載されてないセルもあります。それかランダムに200行ぐらいまであるとします。 >(1)例えばI列とP列、V列の数字の比較をするとして、I列を基準に考えるとします。 比較対象の列がI列P列およびV列なので、他の列については無視することになります。 >(2)I列に入力がなければ空白 >(3)P列とV列両方共記載がなければ空白 IF関数の入れ子構造をお望みですか? それともIF関数の論理式を複雑にして、入れ子構造を避けたいのでしょうか? 入力されている「数字」とは「文字列としての数字」なのか「数値」なのかで論理式の組み立て方が変わります。また、大きさを比較するには文字列の時は数値に置き換えますが、マイナスの値になるものがありますか? >(4)P列とV列どちらかに記載があればIと比較してI列の方が小さければ〇大きければ空白とします IF関数で条件分岐するときはフローチャートで整理しないとチェック漏れの恐れがあります。 IF関数の多重入れ子で処理する方法とIF関数の論理式に条件をすべて網羅し、1つのIF関数で済ませることも可能です。 入力してある値が数値であることを条件とすれば、(2)と(3)の条件を纏めると次のような論理式が考えられます。 ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))>0 (4)の条件はP列とV列の双方に入力があるとき大きい値とI列を比較するものとすれば次の論理式を使えます。 I1<MAX(P1,V1) (2)、(3)の条件と(4)の条件を1つの論理式に纏めると次のようになります。 ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))*(I1<MAX(P1,V1))>0 この論理式を応用すればIF関数で容易に”〇"と""に区分けできるでしょう。 =IF(ISNUMBER(I1)*(ISNUMBER(P1)+ISNUMBER(V1))*(I1<MAX(P1,V1))>0,"〇","")
お礼
ご回答ありがとうございます。謎がわかりました。みなさんの回答で出来てました。そのままコピペでセル番地が1個ずれてたからでした。申し訳ございません。ありがとうございました。
- kkkkkm
- ベストアンサー率65% (1615/2454)
> Iがpとvより小さければ〇 両方入力されていてPとVのどちらか一方でもiより小さかった場合は空白という意味ですか。 こいうことでしょうか。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(P1="",V1=""),IF(OR(V1>I1,P1>I1),"○",""),IF(AND(V1>I1,P1>I1),"○","")))
補足
ご回答ありがとうございます。いまためしたのですが、写真のようにPとVが空白セルなのに〇がついていまいました。
- chie65535
- ベストアンサー率43% (8519/19367)
なお、希望と違う値が出ている場合は「欲しい結果」を以下の表のようにして提示して下さい。 I|P|V|結果 -+-+-+-- 空|空|空|空 空|空|10|空 空|空|20|空 空|10|空|空 空|10|10|空 空|10|20|空 空|20|空|空 空|20|10|空 空|20|20|空 10|空|空|空 10|空|10|空 10|空|20|〇 10|10|空|空 10|10|10|空 10|10|20|空 10|20|空|〇 10|20|10|空 10|20|20|〇 20|空|空|空 20|空|10|空 20|空|20|空 20|10|空|空 20|10|10|空 20|10|20|空 20|20|空|空 20|20|10|空 20|20|20|空 上記のような「すべてのパターンを埋めた表」があれば「その表に合わせた式」を回答できます。
補足
みなさんご回答ありがとうございます。結果を、写真で撮って貼り付けたいのにマルチメディアの選択が無く、1枚投稿したからと思い消してもマルチメディアの選択がないのです。どうしたらはりつけられるでしょうか?本題とは違いますが宜しくお願いします
- chie65535
- ベストアンサー率43% (8519/19367)
この式でどうですか? =IF(CHOOSE((I1="")*4+(P1="")*2+(V1="")+1,AND(I1<P1,I1<V1),I1<P1,I1<V1,FALSE,FALSE,FALSE,FALSE,FALSE),"○","") 添付画像のような結果になります。
- kkkkkm
- ベストアンサー率65% (1615/2454)
> kkkkkmさんの投稿試したのですが、写真のようにダメでした。 画像の数値が見えないのですが、I P V でダメだった数値を教えてもらえますか?
- chie65535
- ベストアンサー率43% (8519/19367)
エクセルで、添付画像のような「出現パターンの一覧表」を作って「未定義」と書いてある部分を埋めて下さい。 そうすれば「どういう時に○を表示して、どういう時に空白を表示すれば良いか?」が明確になります。 それが明確になれば、式を書く事ができます。
補足
ご回答ありがとうございます。言葉足りずにすいません。捕捉として、Iが入力されてるのとあとpかvがどちらか入力されてるのが絶対条件です。又、もし3つ共に入力されており、全て同じ数字なら空白です。又Iが30でpとvが50なら〇で、勿論Iしか入力されてなければ空白です。あくまで同一ではなく、Iを基準のHiGH&LOWでIがpとvより小さければ〇でお願いします。ちなみにkkkkkmさんの投稿試したのですが、写真のようにダメでした。一応不等号入れ替えてやってみたのですがダメでした。(〇がついてる所、不等号変えてやってみたしたが、両方共〇がつきます)宜しくお願いします
- chie65535
- ベストアンサー率43% (8519/19367)
>どのような式をつくればいいでしょうか?お力お貸し下さい。 「条件に不備がある」ので、式は作れません。 以下の点を明確にして下さい。 P列とV列とI列すべてに数値が入っている場合、I列は、P列とV列のどちらと比較すべきか? P列とV列とI列すべてに数値が入っている場合に、I列とP列を比較すると仮定した場合、その2つの数値が等しい場合、どうするのか? P列とV列とI列すべてに数値が入っている場合に、I列とV列を比較すると仮定した場合、その2つの数値が等しい場合、どうするのか? P列とI列にのみ数値が入っていて、その2つの数値が等しい場合、どうするのか? V列とI列にのみ数値が入っていて、その2つの数値が等しい場合、どうするのか? 以下の「場合分け」で「未定義」になっている部分を埋めないと、式は作れません。 ・I列が入力なし、P列が入力なし、V列が入力なしの場合 ⇒空白 ・I列が入力なし、P列が入力なし、V列が入力済みの場合 ⇒空白 ・I列が入力なし、P列が入力済み、V列が入力なしの場合 ⇒空白 ・I列が入力なし、P列が入力済み、V列が入力済みの場合 ⇒空白 ・I列が入力済み、P列が入力なし、V列が入力なしの場合 ⇒空白 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列<V列の場合 ⇒○を表示 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力なし、V列が入力済みで、I列>V列の場合 ⇒空白 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列<P列の場合 ⇒○を表示 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列=P列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力なしで、I列>P列の場合 ⇒空白 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列<V列の場合 ⇒○を表示 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列<P列かつI列>V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列<V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列=P列かつI列>V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列<V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列=V列の場合 ⇒未定義 ・I列が入力済み、P列が入力済み、V列が入力済みで、I列>P列かつI列>V列の場合 ⇒空白 貴方が「どのような式を作れば良いか判らない理由」は「すべての場合を網羅できてない、未定義の部分があるから」です。 つまり「大きい時、小さい時は決まってるけど、等しい場合どうすべきか決まってない」とか「有効な値が3つある時、どれとどれを比較すべきか明確になってない」とかの不備があるのです。 これらの不備をなんとかしないと、式は作れません。
- kkkkkm
- ベストアンサー率65% (1615/2454)
以下でいかがですか。 =IF(OR(I1="",AND(P1="",V1="")),"",IF(OR(V1>I1,P1>I1),"〇",""))
関連するQ&A
- セルの内容を合わせるエクセル関数
お世話になります。 エクセルの関数にて、下記条件を満たす関数が作れないので 分かる方がいましたら教えてください。 A列には文字列が、B列には空白か1の数字がランダムに(1番上の行は必ず空白セル)入力されています。 これに対して、B列に空白から1が続いているセルまでをひとくくりとして、 右側のセルに表示させたいです。 画像では C2セル=A2 C3セル=IF(B3=1,C2&A3,A3)としてC4セル以降にコピペ D2セル=IF(B2="",C2,"")としてD3セル以降にコピペしていますが、 C列でひとくくりになるセルが下へ行ってしまい、 希望する結果に表示されないです。 関数が組める方がいましたらご伝授頂けますでしょうか。
- ベストアンサー
- Excel(エクセル)
- よろしくお願いいたします。写真のように表のなかに数
よろしくお願いいたします。写真のように表のなかに数字が記載されてる所と空白の所があるのですが、I列とP列とV列の比較を、したいのです。その比較とは、 1番小さい数字を、抜き出したいのです。計算結果を求めるところは、表の終わった列でかまわないのですが、空白セルもあるのと、数字が入ってる人セルと無いセルがあるのでどのようにしたらいいのでしょうか?よろしくお願いいたします
- ベストアンサー
- Excel(エクセル)
- エクセル 空白を消す関数 IF?
エクセル2002を使っています。 A1のセルに「あい うえお」 A2のセルに「かきく けこ」 A3のセルに「さ しすせそ」…と200行入力してあります。 空白(スペース)を消したいのですが、スペースが入っている位置はまちまちなので、リプレイス関数は使えません。 何とか関数を使って、空白を消す事は出来るのでしょうか? 私が思いついたのはIF関数で、『もしA1のセルに空白があったら空白を消す』と命令できるかも・・・と思ったのですが、式がどのようになるのか分からないし、もっと簡単な、もしくは別の関数があったらぜひ知りたいです。
- ベストアンサー
- オフィス系ソフト
- エクセルIF関数について
エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。
- ベストアンサー
- その他MS Office製品
- エクセルの関数について
エクセルの関数について お世話になります。 エクセルの関数について質問をさせて頂きます。 チェック用の数式として、下記のような場合、 D2とH行に同じ数字があった場合はA2に○を この場合、 =IF(ISNA(MATCH(D2,H:H,0)),"","○") このような数式を使っております。 この数式を少しアレンジして、 D2とH行に同じ数字があった場合はA2に○を、 D2とI行に同じ数字があった場合はA2に×を、 このような数式を作りたいと考えております。 また、 I2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る数式として、 [J2]=IF(ISNA(MATCH(I2,D:D,0)),"×","") このようなものを使っています。 こちらも少しアレンジをして、 I2もしくはH2とD列に同じ数字があった場合、J2に空白、 同じ数字が無かった場合に×が入る。 このような数式を作りたいと考えております。 こちらの2点、中々良い数式ができずに悩んでおります。 どなたか、エクセルの関数に詳しい方、良いアドバイスを 頂けると嬉しいです。 どうぞよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル 複数条件のIF関数
0から360の数字がランダムに入力されているA列があります。この数字を以下の条件でB列に入力したいのです。 (1)288以上なら280を引く (2)144以上なら144を引く (3)72以上なら72を引く (4)72未満ならその数字のまま入力 結果として、72未満の数字がB列に入力されることになります、 IF関数を使えばできるのかなと思いますが、違う方法でもよいです。 4万セルくらいを処理するので一番簡単な方法を教えてください。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルのIF関数について
エクセルのIF関数について質問をさせて頂きます。 現在、下記のような条件で抽出できる式を考えているのですが、 中々思うような式が思い浮かびません。 例えば、 A列 B列 C列 D列 1行目 111 2行目 222 3行目 333 4行目 444 5行目 555 6行目 666 7行目 777 8行目 888 9行目 999 上記のようなシートがあったとして、 A列 B列 C列 D列 1行目 111 999 2行目 222 333 3行目 333 ○ 123 × 4行目 444 5行目 555 6行目 666 7行目 777 8行目 888 9行目 999 ○ 上記のように、例として C列の1行目に「999」と入力した場合、A列の9行目に「999」の数字があるので、その横のB列に「○」 C列の2行目に「333」と入力した場合、A列の3行目に「333」の数字があるので、その横のB列に「○」 C列の3行目に「123」と入力した場合、どこにも該当番号がないので、入力したC列の横、即ちD列の3行目に「×」を表示 要は、A列のどこかに該当数字があった場合にはその数字の横(B列)に「○」、どこにも該当数字が無い時には、入力した数字の横、D列に「×」を表示するような数式を考えています。 IF関数を使えばできるような気がするのですが、色々と試してみても中々うまくいきません。 下手な説明で分かり辛いかもしれませんが、どなたかご存知の方がいましたら、ご教授の程頂ければ幸いです。 どうぞ宜しくお願い致します。
- ベストアンサー
- その他(業務ソフトウェア)
- IF関数をひとつのセルに二つ使いたい。
A列のセルには、 「空白」、「0.5」、「1」、「1,5」、「2」が入るのですが B列のセルには 隣接するA列が「0.5」~「1,5」までは500、 「2」以上だと1000、 A列が空白だとB列も空白にしたいです。 でも最初からB列には関数 「=IF(1<A1,1000,500)」を入れてオートフィルしているので 空白のセルも勝手に「500」に入力されてしまいます。 そもそも「=IF(1<A1,1000,500)」ではだめですよね? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- エクセル関数で教えてください。
例えば、A列の1行目からA列の100行目まで社員の名前が重複せずに100人分あります。B列1行目からW列100行目までにランダムに数字が入っています。数字は重複していません。この、数字(例えば5という数字)のセルの場所を特定したいのですが、関数でこの場所を特定する方法を教えていただけませんか? 結果的に必要なのは、5という数字が何行目にあるかだけですので、それだけ分かれば良いのですが。良い方法が見つかりません。 今回はマクロは一切使わない条件です。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
ご回答ありがとうございます。あなたの解説私がセル番地の確認ミスで申し訳ございません。出来ました。悩ましてしまい申し訳ございません。ありがとうございました