• ベストアンサー

飛び飛びのセルに表示されている数値を抜き出す

EXCELでどうしても出来ない事があるので、質問をさせて頂きます。 指定範囲内の数値を検索して、数値があった場合”そのまま”数値を変えずに 表示させたいのですが、どのようにすれば良いでしょうか。 _______________________ A 1 50 2  3 4 5 6 7 100 8 9 10 この状態で、別の場所に以下のように表示させたいのです。   B 1  50 2 100 何も表示されていない箇所を、詰めて表示させたいのですが、何か良い方法はあるでしょうか。 宜しくお願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えばB1セルには次の式を入力し、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。 その式を下方にドラッグコピーします。 =IF(ROW(A1)>COUNT(A$1:A$100),"",INDEX(A$1:A$100,SMALL(IF(A$1:A$100<>"",ROW(A$1:A$100),10000),ROW(A1))))

kumainu555
質問者

補足

ご返信遅れてしまいました。 この方法でも簡単にできました! ただ、理解するのに1時間以上かかりましたw 大変助かりました! またお願いいたします。 しかし、どなたをベストアンサーにするか迷います^^;

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

その他の回答 (4)

noname#204879
noname#204879
回答No.5

1.列Aの左に1列挿入 2.セル A1 に式 =COUNT(B$1:B1) を入力して、此れを下方にズズーッとドラッグ&ペースト 3.セル C1 に次式を力して、此れを下方にズズーッとドラッグ&ペースト    =IF(ISERROR(VLOOKUP(ROW(A1),A:B,2,FALSE)),"",VLOOKUP(ROW(A1),A:B,2,FALSE)) 4.列B全体を選択して、[コピー]→[値の貼り付け]を実行 5.列Aを削除

kumainu555
質問者

補足

ご返信遅れてしまいました。 この方法でも簡単にできました! どなたをベストアンサーにするか迷います^^;

すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! >表示されている数値を抜き出す とありますので、数値・文字列が混在していて数値セルのみを表示させる方法の一例です。 B1セルの数式を =IF(COUNT(A:A)<ROW(A1),"",INDEX(A$1:A$100,SMALL(IF(ISNUMBER(A$1:A$100),ROW(A$1:A$100)),ROW(A1)))) 配列数式になりますのでNo.1さん同様、Shift+Ctrl+Enterで確定してくささい。 この画面からコピー&ペーストする場合は上記数式をドラッグ → 右クリック → コピー → B1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能のまま)Shift+Ctrlキーを押しながら Enterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 これをオートフィルで下へコピーしてみてください。 ※ 範囲指定内でなく、A1~A100セルの範囲内としています。m(_ _)m

kumainu555
質問者

補足

ご返信遅れてしまいました。 たくさん返信がございましたが、この方法でシートを完成させました! 大変助かります。 どなたをベストアンサーにするか迷います^^;

すると、全ての回答が全文表示されます。
  • banzaiA
  • ベストアンサー率16% (100/595)
回答No.3

フィルターを使用すればいいのではないですか。 フィルターで空白行を表示しないにすれば、入力されている行だけが表示されますから コピー&ペーストでできますよ。

kumainu555
質問者

補足

フィルター機能は知っています。 しかし、関数を用いて処理したかったので、別の方法を採用しました。 ご回答ありがとうございました。 またお願いします。

すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答No1です。 もっとお分かり易く簡単な方法は作業列を作って対応する方法です。 A列のデータは2行目から下方に入力されているとします。 そこで例えば表とは関係ない離れた列、E2セルに次の式を入力して下方にドラッグコピーします。 =IF(A2="","",MAX(E$1:E1)+1) これでA列にデータが入力されていれば上から順に番号が表示されます。 そこでお求めの表示ですがB2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(E:E),"",INDEX(A:A,MATCH(ROW(A1),E:E,0)))

kumainu555
質問者

補足

ご返信遅れてしまいました。 この方法でもできました! 大変参考になりました。 また宜しくお願いいたします。 どなたをベストアンサーにするか迷います^^;

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

関連するQ&A