• ベストアンサー

Excel 空白を含む列範囲からn番目のセル

Excel2010を使用しています。 皆様のお知恵をお貸しください。 下の図のようにA2からA10までの表があり、空白も混じっています。 C3セルに2と入力したら、A2からA10までの表から空白を除いた2番目の数値 つまり、7がC5セルに表示されるようにしたいのです。 ご教示のほど、宜しくお願い致します。

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

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

次の数式で良いと思います。 =INDEX(A$1:A$10,SUMPRODUCT(SMALL((A$2:A$10<>"")*ROW(A$2:A$10)+(A$2:A$10="")*100,C3)),1) SUMPURODUCT関数を使わなくてもSMALL関数でn番目の行番号を抽出すればINDEX関数で値を取り出せます。 但し、計算途中で配列値を扱うので数式の確定時にCtrl+Shift+Enterの操作が必要です。 SUMPURODUCT関数を使うと通常のEnterキーで確定できます。 SMALL関数の範囲は値が入力されているセルに対して行番号を適用し、未入力に対しては定数の100を適用しています。 実情に合わせて検索範囲と定数を変更してください。

kuzan
質問者

お礼

とても華麗な数式をありがとうございました。 自分なりにSUMPRODUCT関数を学んではいるものの、 SMALL関数と組み合わせた上で >値が入力されているセルに対して行番号を適用し、 >未入力に対しては定数の100を適用 このような発想に至るにはまだまだ及びません。 非常に勉強になりました。 ベストアンサーとさせていただきました。

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

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! 画像通りに配置として、表示したいセルに =IFERROR(INDEX(A2:A1000,SMALL(IF(A2:A1000<>"",ROW(A2:A1000)-1),C3)),"") としてCtrl+Shift+Enterで確定! この画面からコピー&ペーストする場合は 上記数式をドラッグ&コピー → 表示したいセルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま) Ctrl+Shiftキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。m(_ _)m

kuzan
質問者

お礼

ご教示ありがとうございました。 配列数式の確定まで丁寧に説明くださり恐れ入ります。 SMALL関数をもっと勉強しようと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

簡単にするため、A列に一列、列を追加して、A2に以下の式を入れて下にドラッグコピーする。 =IF(B2="",A1,A1+1) 次に、D5に以下の式を入れて、下にドラッグコピーでいかがでしょう。 =VLOOKUP(D3,A:B,2,FALSE)

kuzan
質問者

お礼

ご回答ありがとうございました。 期待していた結果とはちょっと違いましたが 勉強になりました。

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

関連するQ&A

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • エクセル 空白セルを0にして……

    エクセルで表を作成しています ごく簡単な表なのですが 作成しているうちに 疑問が でてきたので 質問させていただきます 光熱費の表を作成しているのですが  B3に当日の水道のメータ数字 C3に前日の水道メータの数字表示 D3にその差 B4にまたその当日のメーター表示 C4に前日のメーター表示 D4にはまたその差が入力さ れるように設定 また、入力 当日のデータを入力したら 自動的に 翌日のセルの前日データのセルに 同じ数値が入るようにしています(例えばB3に入力したら翌日のC4セルに同じ数値が入る ) といったように 設定しました ここまでで 大体の表が完成したのですが ちょっと困ったことが おきてきました 当日の数値を入力すると 翌日のCセルに入力するようにしたのですが(B3に 入力すると 同じ数値がC4入力されるように設定) その際 一つおききしたいことができました 当日の数値を入力すると 翌日のB列が空白になり その行のEセルに数値が入って しまうのです。わたしとしては 基本的な設定を変えずに、ここを0に設定したいのですが その方法が分かりません  これとは 別に平行して 家計費の表を別で作成していた時 他の方からのアドバイスで 以前、空白の欄を0をする 関数を教えていただきました 其の時は 他の関数と 重なっている関数でした(加算減算を同時にする計算) この時の =IF(count(B3)=,"", , といったような関数を参考に色々試してみたのですが 中々うまくできません どうしたら この状況を解決できるでしょうか? 何方か お知恵をお貸しください 説明が分かりづかくて 申し訳ありません 宜しくおねがいいたします OSはVISTA ヴァージョンは2007です 重ねてもうしあげますが 説明が分かりづらくて申し訳ありません

  • Excelの空白セルを正しく認識しない

    数字と空白の入り交じった表Aと表Bのデータを加算して、新たに表Cを作ろうとしています。 普通に表Cのセルに、「表Aのセル」+「表Bのセル」を書き込めば良さそうなのですが、 一見すると空白に見える一部のセルを参照した式で#Valueのエラーが表示されてしまいます。 最初は、何か文字(空白記号など)が入っているのかと思い、調べたのですが、やはり、なにも入力されていないようです。 しかし、エラーとなっている式が参照しているセルでDeleteを押すと、エラーが解除されることは確認できています。 膨大なデータにランダムに数字が入っているので、 一個一個のセルをDeleteしていくのは非常に時間がかかるので、何かよい解決策をご存じの方がいらっしゃったら、知恵を貸してください。 ※ ちなみに、参照先になっている表は私が作った物ではなく、また0から作り直すことはできません…。

  • 【エクセル】範囲内の空白ではない一番下のセル

    またよろしくお願いします。 2段階にわけて質問します。 【質問1】 範囲A1:A10の空白ではない一番下のセルの値を得たい 【質問2】 たとえば質問1でA8が該当セルだった場合、範囲B1:B8の空白ではない一番下のセルの値を得たい。 A列の状態によってB列の範囲を変えて選び出すのが難しそうです。 よろしくおねがいします。

  • EXCELで、参考対象のセルが空白の場合、の空白表示(複数対象)

    表1(1日単位の入金額)     A    B    C    D    ・ ・ 5  「 10」 「 10」 「 10」 「 20」   6  「 10」 「 20」 「 20」 「空白」   7  「空白」 「空白」 「空白」  「空白」   表2     A    B    C    D    合計 ・ ・ 5  「100」 「150」 「130」 「200」  「580」(A+B+C+D) 6  「110」 「 170」 「 150」 「200」  「630」 7  「空白」 「空白」 「空白」 「空白」  「 X 」 この表2で、ABCDの全てのセルが空白(7)の場合、「 X 」のセルが空白になるようにしたいのです。 勿論数値が入力されれば、ちゃんと計算出来るようにします。 ちなみに表2のABCDの各セルは、表1で入力された数値の積算金額(6段目の場合、表1の6+表2の5の合計)です。 一個だけならIF関数で、処理できたのですが、複数のセルの場合はどのようにするかが質問です。 よろしくお願いします。 なお、質問文が解らない部分があれば、補足いたします。    

  • エクセル 空白セルを詰めたい

    A表のようなデータを別シートに”データの入力規則”でプルダウンを作ると、プルダウンに空欄ができてしまいます。 空白セルにはCOUNTIF等関数が入力されています。 空白でなく記号や文字を入れることは可能です。 空白セルだけ抜いて上に詰めたB表を、関数のみで表示することはできますか? 空白セルがある状態でもプルダウンで詰める方法があればそちらの方がよいです。 A表 __|______ 1 | 日本 2 | アメリカ 3 | 4 | イギリス 5 | 6 | フランス 7 | イタリア ↓A表の隣に表示させたい B表 __|______ 1 | 日本 2 | アメリカ 4 | イギリス 5 | フランス 6 | イタリア

  • EXCEL 数式が入った空白セルを数える

    毎度お世話になっています。 質問の内容ですが、例えば下記のようなシートがあるとします。 セルB1、セルC1、セルD1:手入力セル セルA1:数式「=IF(B1="","",B1+C1)」 セルA2:文字列 セルA3:数式「=IF(D1="","",D1*0.1)」 セルA4:文字列 セルA5:A1+A3の計算結果を表示 (※なお、セルA2、A4は数値が入らない) というような場合において、 ●セルB1、C1、D1になにも入力されていない場合、セルA5が空白となる。 ●セルB1、C1にのみ数値が入力されている場合、セルA5の計算結果がセルA1の値のみ。 ●セルD1にのみ数値が入力されている場合も上記と同様に計算結果が表示される。 以上の条件を満たす数式をセルA5に入力したいのですが、 COUNTBLANKは数式が入っている場合には使えず、COUNTAの場合だとセルA1、A3のどちらにも数値が入った場合に表示される、といった数式になります。 IFをいくつも使えば可能とは思いますが、もう少し単純に数式を作れたらと思い質問をさせて頂きました。 よろしければ御回答宜しくお願い致します。 (内容を訂正したため、いったん質問を削除しました。もし御回答中の方が居ましたら申し訳ありませんでした。)

  • excel セル未入力→空白 任意の入力値→表示するには

    お世話になります。 わかりにくいタイトルの上、過去に質問があるかもしれませんが・・・ ○セルA1に別シートよりVLOOKUPでひっぱってきた数値を表示(空白の場合も有り) ○セルB1にセルA1の値、数値表示・もしくは何か入力があれば”入力有”空白ならば空白表示をするのはどうしたらいいのでしょうか? IF(A1="","","入力有")としましたが、もともとA1にはVLOOKUPの数式が入っていますし、 IF(0<A1,"入力有","")としたら、A1にはマイナス数値表示もありました。 「何らかの入力が有った場合そのまま表示」という指示はあるんでしょうか?(例えば、検索の時に使う[*]のような・・・) よろしくお願い致します。

  • エクセルの空白を求めたいのですが。

    エクセルの空白を求めたいのですが。 例えば、 ・・A B C D E 1 4 2 3 8 4 5 6 4 7 8 9 2 10 A列の数字入力があるセルから、次のセルの入力値まで の空白の個数を関数で出来ますでしょうか? A9~A6 は空白が2個となります。 A6~A3 は空白が3個となります。 A列の 各行 には他のセルで計算された値を出しているので、 各行に現れる数値は、その時によって違います。(現れる数値は整数です) わかる方いましたら、宜しくお願いします。

  • エクセルでセル移動について

    エクセルのA1からD10の表に縦に数値を入力します。 各列によって空白のセルがあります。 A列の入力が終わればB1に、B列の入力が終わればC1に セル移動するにはどうすればいいでしょうか? (空白セルがあるため、Ctlキー+↑キーでは上手くいきません。) 教えて下さい。よろしくお願いします。  

専門家に質問してみよう