• ベストアンサー

エクセルのIF関数での範囲指定の方法

エクセル2010のIF関数は割と良く使っているのですが、範囲指定して使用したいケースについて教えて頂きたく。 例えば「A1からD5までの範囲のセル全てが空白でない場合」 =IF(A1:D5<>””,0,”合格”)というような指定はできないでしょうか? このような範囲指定が出来ると、範囲の合計が100以上の場合、等々使いやすくなるのですが。 今は1つ1つのセルをIFで指定したり、合計をどこかのセルに出してそれを判定させているのですが、範囲が大きくなるとこのような方法ではさすがに・・・ 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.8

こんにちは 入力表(Sheet2)のA列のA1から最終行まで日付が入っているなら、 =IF(COUNTA(INDEX(Sheet2!B:H,COUNTA(Sheet2!A:A),0))<>7,0,"合格") とかで。

akira0723
質問者

お礼

ushi2015-さん、 1つずつの関数は知っており、朝から種々試行してみたのですが、動かなくて質問させていただきました。 デモシートにこの通りに貼り付けてみたら 何故か完璧に動きます!!!! 時間が限られた中で、思いついた解決策だったので本当に助かりました。 今日中に何とか実際の表に適用できそうです。 最初の質問で肝心の前提が抜けてしまっており、皆様にはご迷惑をお掛けしましたが、丁寧にご回答くださり本当にありがとうございました。 感謝!!

その他の回答 (8)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.9

>例えば「A1からD5までの範囲のセル全てが空白でない場合」 >実は指定したい範囲がエクセルの別の表の最下行のデータ入力範囲です。(回答No.1およびNo.2への補足) 前者が誤りで後者がIF関数の条件判断の対象と言うことですよね? 「別の表」とは「同じファイルの別のSheet」と言うことですか? Sheet名と最下行の行番号を指定しないと数式を組めません。 >範囲が固定なら、ご回答いただいた方法全てで出来るのですが、範囲の指定とブランクの判定の組合せが分かりません。(回答No.4への補足) 最下行の行番号が浮動で自動的に検出させるのでしょうか? >仰る通り、A列にデーターの「入力日」が入りますので、A列のデータの数だけ下(最下行)から横並びに決まった幅、例えばB-H列までに空白セル(入力漏れ)が無いことを別の表(顧客提出用)のセルに「入力漏れ有り」等の表示を出したいのです。(回答No.6への補足) 質問文では「A1からD5までの範囲」となっていますが、「B-H列までに空白セル」と条件判断の範囲が列方向も浮動なのでしょうか? 質問内容が度々変化していますので具体的な数式を提示することが困難です。 >OFFSET+COUNT+IF+CLUNTBLANK(等)になるイメージが有るのですが、当方せいぜい2つの関数の組合せ程度しか実力が無く、4つの関数になるとどう表現するのか分かりません。(回答No.4への補足) IF関数の原理を理解すれば応用だけの問題なので自在に組み立てられるはずです。 =IF([条件],[TRUEのときの処理],[FALSEのときの処理]) [条件]の数式で複数要件を同時に判定するときOR関数やAND関数を使うことができます。また、条件を数値化して合計したとき0以外のときTRUE、0のときFALSEと言う結果を得られるので[条件]の数式を自由に組めます。 [条件]の数式に配列値も使えますが今回の対象では配列値を1つの結果に纏める必要があるでしょう。 更に、条件のチェック範囲が浮動の場合は範囲を検出するシグナルが必要になります。 つまり、最下行を示す値は何か?、再右列を示す値は何か?を提示しないと具体的な手法を提示できません。 チェック範囲が浮動のときはOFFSET関数で基準となるセルからの行の隔たり(行の位置)と幅(列の数)が検出できれば目的に合う数式を組み立てられるでしょう。

akira0723
質問者

お礼

ありがとうございます。 確かにご指摘の通り質問に抜けが多く失礼しました。 IFは良く使うのですが、その他の(あまり使わない)関数と組み合わせると、うまく行かない時には修正が出来ないレベルなので、ご容赦! 次回からは気を付けますので宜しくお願い致します。

回答No.7

#1です 補足ありがとうございます。 なるほど、横並びですね。 その場合はカラム数とカウントを取れば可能です。 =IF(COUNTA(B5:H5)=COLUMNS(B5:H5),"OK","アラート!")

akira0723
質問者

補足

回答をありがとうございます。 質問が悪く、何度もお手数をお掛けしております。 ご回答の場合は5行目に限っての場合ではないでしょうか? 質問の前提は、表が下方向にどんどん更新されていく場合の最新データの入力された行(最下行)のB-H列までのセルの入力漏れのアラームです。 詰まり最下行の特定とその行の横の(B-H列)データの数、もしくは空白セルのCOUNTの関数の組合せの仕方が知りたいのです。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.6

こんにちは 入力表の最下行の判定する条件が必要です。 データの入った最下行なら判定出来ますが、最下行が全て空なら判定出来ない ですよね? 表の下にデータの入っていない行が有るなら、そのシートの一番下の行が最下行 という事になってしまいます。 最下行のA列のセルに何か項目が入っているとか、判定条件は無いのですか?

akira0723
質問者

補足

ありがとうございます。 何度も言葉足らずで申し訳ありません。 仰る通り、A列にデーターの「入力日」が入りますので、A列のデータの数だけ下(最下行)から横並びに決まった幅、例えばB-H列までに空白セル(入力漏れ)が無いことを別の表(顧客提出用)のセルに「入力漏れ有り」等の表示を出したいのです。(漏れ無き場合は空白セル) 実際に入力漏れのまま、顧客に提出して苦情になりましたのでその再発防止策ですので、何とかお知恵をお貸しください。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

(1)関数でもデータの入力されている最下行は捉えられます。 Googleで「エクセル関数 データ最下行」で照会してください。たくさん記事があります。 http://officetanaka.net/excel/function/tips/tips35.htmなど多数。 しかしVBAでやるのがスムーズです。 (2)セル範囲のデータの調べ方 普通のIFを使って、A1:D5="A”のような調べ方はできません。 エクセル関数のセルの範囲指定は、数値セルの、合計、平均、件数、標準偏差など、結果が1つの数字が返るものが多い。 ISBLANKやCOUNTIFなどでは、調べられるものもあります。 しかし条件がどのセルのデータが適合しているのか調べたい場合が多く、VBAの繰り返し各セルで判別処理やFindメソッドがおすすめです。 場合によると、配列数式というものが、「初心者の思い付きや、考えにぴったり」という場合があるとおもいますが、普通の解説書では、言及程度で、詳しくは解説されない。 IF関数は、「もし何々なら」の連想で初心者にはまず思い付く内容・考えですが、IFは使わないために、それぞれの決まった他の関数が作られていると、私は思ってます。IF的発想になったら、他にその目的のエクセル関数がないか、立ち止まって考えてください。 プログラムでも、考えはIFだらけ(場合分けや判別だらけ)ですが、IF文を使うのは、撲滅する方向に、他の方策が考えられているような気がします。

akira0723
質問者

お礼

ご回答ありがとうございます。 仰る通り、先ずは何でもIFで解決しようと思ってしまう初心者です。 そろそろ関数だけでは限界も有ることから、VBAの必要性は感じているのですが、なかなかとっつきにくく。。。。 教えて頂いたHPに当方には色々役に立ちそうな情報が有りそうなので参考にさせて頂きます。  ありがとうございました。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.4

こんにちは Sheet2のA5~D5が最下行として、 =IF(COUNTA(Sheet2!A5:D5)<>4,0,"合格") とかですか? 入力表の最下行自体も判定させるのですか?

akira0723
質問者

補足

その通りで、入力表の最下行の判定で止まっています。 範囲が固定なら、ご回答いただいた方法全てで出来るのですが、範囲の指定とブランクの判定の組合せが分かりません。 OFFSET+COUNT+IF+CLUNTBLANK(等)になるイメージが有るのですが、当方せいぜい2つの関数の組合せ程度しか実力が無く、4つの関数になるとどう表現するのか分かりません。 一番の質問内容が抜けてしまい、お手数をおかけすることになってしまいました。 済みません。。。。

  • akauntook
  • ベストアンサー率19% (295/1481)
回答No.3

>例えば「A1からD5までの範囲のセル全てが空白でない場合」 =IF(A1:D5<>””,0,”合格”)というような指定はできないでしょうか? できません。 そういう仕様です。 if文で用いる単純な条件式は、特定の一つのセルの値に対して評価します。 セルを1つ選択した場合、参照は値となりますが、セルを複数選択した場合は配列となるため根本的に意味が違います。 >今は1つ1つのセルをIFで指定したり、合計をどこかのセルに出してそれを判定させているのですが、範囲が大きくなるとこのような方法ではさすがに・・・ 前者の方法はExcelを使っている意味がなくなるのでないですね。 後者の合計をどこかのセルに出してと言うのは、どこかのセルに出す必要がないです。 合計を求める式は必ず値を返すので、合計を求める式を条件式で評価すれば、値を評価出来ます。

akira0723
質問者

お礼

ご回答ありがとうございます。 質問内容の重要部分が抜けてしまっていました。 お手数をおかけし申し訳ありませんでした。

回答No.2

以下のような使い方でしょうか? =IF(SUM(B2:B10)<=0,"合格","不合格")

akira0723
質問者

補足

早々のご回答ありがとうございます。 質問した直後に大きな条件が抜けていることに気付きましたが、回答が付かないと補足できないようなのでご回答いただくまで待ってしまいました。 実は指定したい範囲がエクセルの別の表の最下行のデータ入力範囲です。 入力表の一番下の行(横)方向にデータを入力していくのですが、データの入力漏れがあった場合、別の表のセルにアラームの表示がしたいのです。 慌てて質問してしまったために直接のやりたいことだけ質問してしまいました。 申し訳ありません。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは =IF(COUNTA(A1:D5)=0,0,"合格") とか、 =IF(SUM(A1:D5)<100,0,"合格") ですか?

akira0723
質問者

補足

早々のご回答ありがとうございます。 質問した直後に大きな条件が抜けていることに気付きましたが、回答が付かないと補足できないようなのでご回答いただくまで待ってしまいました。 実は指定したい範囲がエクセルの別の表の最下行のデータ入力範囲です。 入力表の一番下の行(横)方向にデータを入力していくのですが、データの入力漏れがあった場合、別の表のセルにアラームの表示がしたいのです。 慌てて質問してしまったために直接のやりたいことだけ質問してしまいました。 申し訳ありません。

関連するQ&A

  • Excel IF関数でのセル範囲指定の方法

    エクセルでチェック項目を確認したいと思っています 例:   A B C D E 1 ○       OK 2   ○ ○   OK 3         NG A~Dの範囲でひとつでも○があれば「OK」ひとつもなければ 「NG」と判定をしたいのです。 例では4つのセルだけなのですが実際はかなりのセル数があります。 E1セルに 「=IF(OR(A1="○",B1="○"C1="○",D1="○",),"OK","NG")」 A~Zまで範囲を指定したい場合はどのように記述すればよいのでしょうか? ご存知の方 ご教示よろしくお願いいたします。

  • EXCEL IF関数

    EXCELのIF関数で「A1からA5が空白だったならば、空白を、空白じゃなかったらA1からA5の合計を求める」といったような式の設定はできますか? 「A1からA5の全てにデータが入れば合計を求める」または「A1からA5のどれかにデータが入れば合計を求める」というやり方はどうでしょう? 1つ目のように、範囲を論理式(条件)に用いることはできるのでしょうか?

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

    エクセルIF関数について A2セルにA1セルが空白なら空白。8:00ならば、8:00。8:00>ならA3セルに(そのままの値を)表示せよ。 という関数を入れたいのですが、どの関数をどのように定義すれば良いのかわかりません。 IF関数かな?と思ったのですが、IF関数で偽のときは、「別のセルに入力せよ」などというような定義って出来るのでしょうか? どなたか教えてください。

  • IF関数での計算結果を貼り付けたとき、完全な空白セルにしたい

    EXCELのIF関数で例えばA1セルが3のときAを表示して違うときは空白にしたい場合は =IF(A1=3,"A","") と書くと思いますが、IF関数が書かれているセル(計算結果)をコピーして他の範囲に値だけを貼り付けた場合、Aまたは空白セルに見かけ上はなってはいるのですが、その空白セルにはよく見ると '(カンマ)が入っており、完全な空白セルにはなっていないようです。後で貼り付けられた範囲を編集していきたいのですが完全な空白セルでないため作業が続かなくなっています。どなたか詳しい方がおられましたらよろしくお願いします。

  • 関数の選択範囲の指定方法

    例えば、sum関数で、かなり広い範囲のセルの数字の合計を計算しようとしているとします。 この時のセル範囲の指定方法についての質問です。 関数ではなくて、通常のセル選択の場合、「Ctrl」キーと「Shift」キーを押しながら、矢印キーを押すと、文字が入力されている範囲の端から端までが選択できます。 このような方法を関数のセル廃位の選択でもやってみたいと考えています。 なお、計算するデータは空白行、または、空白列で区切られているとします。 よろしくお願いします。

  • エクセル IF 範囲指定

    エクセル関数についてですが、 Aは入力規則でプルダウンで1~3を選択します。 問題はBですが、IF関数を使ってA列で1もしくは2ないし3のどれかを選択した場合、B列ではA列で選んだどれかの値に基づいて指定した範囲の値しか記入できなくする方法を教えて頂きたいのですが、どなたかエクセルマスターはおりませんか? できれば、 A列            B列 1  Aで1の場合4,5,6どれかしか選択できない。 2  Aで2の場合7,8,9どれかしか選択できない。 3  Aで3の場合10,11,12どれかしか選択できない。 出来ればVBAを使わずにシンプルな方法を教えて頂きたいのですが、入力規則とかIF関数のみで実現可能でしょうか?

  • 関数で『指定範囲が空白の時は合計も空白』○が付いたら合計を表示

    エクセル2003で出席表を作っております。 A列には名前(2行目から104行目)、B~AA列(仮)まで日付、この場合関数で『指定範囲が空白の時は合計も空白』○が付いたら合計を表示させたいのですが、イメージで言うと「IF(ISBLANK(単一セル),"",COUNTIF(B2:B104,"○"))」の単一セルではなく(複数行)なんです。 この関数を使って休日(不特定)は空白表示にしたいのですが可能でしょうか?

  • エクセルでのIF関数で範囲指定

    IF関数で(もしくはDATEIF)で 4月~8月 の時はA1のセルに「=H19」 9月~3月 の時はB1のセルに「=H20」 という風に、分けたいのですが 月の範囲をどのように書いたらいいのでしょうか? Excelは基本編くらいしか分からないのでお願いします。 環境 EXCEL 2002 WIN XP

  • Excel IF関数を短くする式を教えて下さい。

    ExcelのIF関数が長くなりすぎて困っています。 短くする方法あれば教えてください。 =IF(A1="",0,IF(A1<4.5,A1,4.5))+IF(B1="",0,IF(B1<4.5,B1,4.5)) のように"4.5より数が小さい場合はセルの値を返し、 4.5より大きい場合は4.5を返す"というのを繰り返し合計していきます。 60セル以上を合計したいのですが、それだと数式が長すぎて・・・ 何か短くする良い式があれば教えて下さい。 よろしくお願いします。

  • エクセル 空白を消す関数 IF?

    エクセル2002を使っています。 A1のセルに「あい うえお」 A2のセルに「かきく けこ」 A3のセルに「さ しすせそ」…と200行入力してあります。 空白(スペース)を消したいのですが、スペースが入っている位置はまちまちなので、リプレイス関数は使えません。 何とか関数を使って、空白を消す事は出来るのでしょうか? 私が思いついたのはIF関数で、『もしA1のセルに空白があったら空白を消す』と命令できるかも・・・と思ったのですが、式がどのようになるのか分からないし、もっと簡単な、もしくは別の関数があったらぜひ知りたいです。

専門家に質問してみよう