• 締切済み

この関数どうでしょう??

入力用のX6~X75に空欄を含むデータが入っています。 それを出力用のD6~D50に空欄以外のデータを上から順番に表示させたくてネットでいろいろ調べてD6に試しに入力したのですが、 なぜか入力用のX16が出力します。 それ以下は順番に表示されましたが・・・。 エクセル素人なので下の関数の意味を教えてほしいです。 X6の数字を1や11に変えたりするとX11のデータやX21のデータが出ましたが全く分かりませんでした。 よろしくお願いします。 この関数をうまく改造すれば入力用X列を出力用D列に 入力用Y列を出力用E列 入力用Z列を出力用G列 入力用AA列を出力用I列 にできますか?? =IF(COUNTIF(入力用!$X$6:$X$75,"<>")>ROW()-6,INDEX(入力用!$X$6:$X$75,SMALL(IF(入力用!$X$6:$X$75<>"",ROW(入力用! $X$6:$X$75),99999),ROW())),"")

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

計算式を説明すると、 IF(入力用!$X$6:$X$75<>"",ROW(入力用!$X$6:$X$75),99999) 上記の式は、入力用!$X$6:$X$75が空白でなければその行数を、それ以外(空白セル)の場合は99999(データ範囲の数字より大きい数)の配列を取得する数式です。 SMALL(上記の数式,ROW())) 上記の数式に誤りがあります。 この数式は上記の配列(該当データの行と空白セルの十分大きな数字)を小さい順に求めていますが、引数がROW()では入力する行によって返す値が1から始まりませんの正しい値を返さないことになります。 すなわち、この部分の明示的にROW(A1)とすれば、どのセル(行)に入力してもよいことになります。 INDEX(入力用!$X$6:$X$75,上記の数式で得られた行番号) この数式は、入力用!$X$6:$X$75から該当データを順に表示させる数式になります。 IF(COUNTIF(入力用!$X$6:$X$75,"<>")>ROW()-6,上記の数式,"") 最後に該当データがない場合は空白表示させるための数式です。 すなわち、対象範囲(入力用!$X$6:$X$75)の空白以外のセルをカウントし、その数が表示項目を数を超える場合は空白表示するための数式です。 この数式も以下のようにすればどのセルに入力しても行番号の補正を行うことなく同じ数式で表示することが可能です。 IF(COUNTIF(入力用!$X$6:$X$75,"<>")>=ROW(A1),上記の数式,"")

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル【IF関数、OR関数】について

    先ほどの質問(http://okwave.jp/qa/q6870449.html)の続きというか補足です。 具体的には、 ・F列またはG列に、X5またはX6またはX7またはX8またはX9またはX10のいずれかの値が入れば、I列に「A」と表示させる。 ・F列またはG列に、X14またはX15またはX16またはX17またはX18のいずれかの値が入れば、I列に「B」と表示させる。 ・F列またはG列に、X23またはX24またはX25またはX26またはX27またはX28のいずれかの値が入れば、I列に「C」と表示させる。 ということがやりたいです。 X列の値は全て文字列(人名)です。 先ほどいただいた回答の、 =IF(COUNTIF(X5:X10,F3)+COUNTIF(X5:X10,G3),"A",IF(COUNTIF(X14:X18,F3)+COUNTIF(X14:X18,G3),"B",IF(COUNTIF(X23:X28,F3)+COUNTIF(X23:X28,G3),"C",""))) という式を入れてみましたが、F列、G列が空白でも「A」と表示されてしまいました。 教えてgooを利用するのは初めてなので、おかしなことをしていたら申し訳ありません。

  • ExcelのSMALL関数について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っています。 B列のフラグは順次更新されており、フラグ「0」の個数は複数あります。 下記の関数式(以下多めにオートフィル)で上記のことができるようになったのですが、 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1))) SMALL関数式の部分↓↓の意味がよくわかりません。 SMALL(INDEX((B$2:B$50<>0)*10^5+ROW(B$2:B$50),),ROW(A1)) どなたかご教授いただけないでしょうか。

  • Excelの関数式について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っており、 下記関数でできるのですが、フラグ「0」が複数連続で続いた場合は、1つ目だけの 行番号を取得したいのですが、どのように変更したらよいのでしょうか。 D列に下記関数式を入力して、以下オートフィルしています。 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^3+ROW(B$2:B$50),),ROW(A1))) 例えば、下記のようば場合は、行番号「2、5、8」を取得したいです。    A   B 1      -1 2       0 3      -1 4      -1 5       0 6       0 7      -1 8       0 9      -1 ・ ・

  • ExcelでIF関数を用いたときの散布図のエラー

    win7 64bit+Excel 2010を使用しています. Excelにて、IF関数を用いて次のように何行か入力するとします. =IF(A1="","",A1+B1) =IF(A2="","",A2+B2) これをC列に出力し,D列に任意のデータを入力します. そして,C列をx軸に,D列をy軸にして散布図をとったときに,C列の選択したセルの最後の行が空欄になっていると,A列をx軸にとった散布図になってしまいます. 入力するデータ数は定まっていないため,余裕をとって散布図表示ができるようにしたいのですが, 解決できる方法がありましたら,是非,お教え願います.

  • 以前と似た質問でエクセル関数=複数条件付関数です

    すいません、以前と同じ質問内容なのですが追加で教えてください。 シート1とシート2があります。横はA列~縦は1~があります。 シート1にはA1~D3までの範囲でA1~A3には野菜or空欄、B1~B3には番号、C1~C3には名称、D1~D3には自ら入力する判定結果(マルorバツ)が入ってます。 シート1 A   B   C   D           野菜 1  なす   ○    2  ねぎ   ○ 野菜 3  にら   × シート2 A B 1 なす のようにシート1のA列で野菜と入力したかつD列で○の判定した番号と名称がのみがシート2のごうに自動でもっていけるようにしたいのです。 途中まで関数はくまれてます。追加でいれる関数が分かりませんので教えてください。 ちなみにシート2のA1には=IF(COUNTIF(Sheet1!$D$1:$D$100,"○")<ROW(A1) ,"",INDEX(Sheet1!B$1:B$100,SMALL(IF(Sheet1!$D$1:$D100="○", ROW($A$1:$A$100)),ROW(A1)))) が入ってます。

  • この関数の解説をお願いします。

    お世話になります。下記関数の解説をお願い致します。 {=IF(ROW(F1)-1<COUNTIF($F$1:$F$3000,$U$2),INDEX($G$1:$G$3000,SMALL(IF($F$1:$F$3000=$U$2,ROW($F$1:$F$3000),9999,ROW(F1))),"")} U2に「ヨーロッパ」と入力するとF列のデータベースから「スペイン34、フランス33、イギリス44」など表示されるようになっています。 上記関数の解説をお願いします。 また{}を先頭につけている意味も教えて下さい。数式をいじろうとするとエラーがでます。 他人にいじらせないようにしてる気もします。 数式はコピペが出来なかったので写し間違えがあるかもしれません。 恐れ入りますがその際はながして頂ければと思います。 宜しくお願い致します。

  • INDEX関数SMALL関数を使って空白行を詰める

    シート1にINDEX関数SMALL関数を使って空白行を詰める表を作成したのですが詰めた表をシート2に表示することはできないのでしょうか。  =IF(COUNTIF($A4:$A4,0)=0,MAX(D$3:$D3)+1,"")  =IFERROR(INDEX(A:A,MATCH(ROW()-3,$D:$D, )),"")この表をシート2に表示する方法

  • エクセル2007 IF関数について教えてください

    お世話になります。 どうしてもIF関数がうまくできず困りはてています。 下記のような項目を含むデータを2万件くらい抽出しています。 A列     B列  C列      D列 E列 状況    拒否理由       注文数   確認数 (1) 在庫不足   入力ミス  1     0 → キャンセル (2) 在庫不足       1      0 → 未処理 (3)                 5        0 → 未処理 (4)                 1       1 → 処理済 (5)   お客様キャンセル      10    0     →     キャンセル 未処理の件数を管理したいのですが、キャンセル扱いとなる条件を除く IF関数をうまく作成できません。 =IF(AND(D2>0,E5>0),"完了","未処理") といったように1個の条件についてはなんとかできるのですが、 B列が空欄or文字の入力有、C列が空欄、E列が0の数字の場合、D列の 数字を表示しなさい、といったようにまとめて、条件式をつくることができません。 何個かつなげると、TRUE、FALSEと表示され指定する列の(この場合D列)数字が表示 できません。 IF関数でなくてもよいのですが、未処理(キャンセル扱い除く)条件のみの数字を表示させる 方法をご教示お願いいたします。

  • エクセル関数の質問。

    エクセル関数の質問です。 画像添付します。 画像のように、A・B列に「0」「1」「2」「空欄」がランダムに並んでいます。 C列に判定を表示します。 判定基準は、A・B列が同じ=○        〃  異なる=×        〃  空欄有り=△です。 この場合、IF関数とCOUNTIF関数で式を作ったのですがエラーが出てしまいます。 お分かりの方がいましたら教えて下さい。 宜しくお願い致します。

  • エクセル関数について

    A列とB列に氏名を入れてA列にあってB列にないものを取り出す為に=IFERROR(INDEX($A$2:$A$8,SMALL(IF(ISNA(MATCH($A$2:$A$8,$B$2:$B$8,0)),ROW($A$2:$A$8)-1),ROW()-1),1),"")の関数をⅮ列に入れ下にオオートフィルしたのですが、思うように表示されません。  関数が間違っているのか判りません。 何か良い方法はあれば教えてください。

ビール券について
このQ&Aのポイント
  • ビール券はビール以外にも使えるのでしょうか。
  • ビール券の使い道について詳しく教えてください。
  • スギ薬局でのビール券の利用方法について教えてください。
回答を見る

専門家に質問してみよう