• ベストアンサー

Excel データの並び替え

以下のようにする方法がないでしょうか? データベースのようにつかいたのです。 A列にデータをいれるとB列に自動で、 以下のようにならぶようにしたいです。 空白セルを飛ばし上から順番に並べかえたいのですが 方法はないでしょうか?不可能なのでしょうか? 可能でしたらB列にいれる数式、関数をおしえてください。    A  B  C 1  5  5 2  4  4 3  7  7  4     1 5  1  3 6 7  3

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#01です。データは1行目からあるのでしたね。 式を以下に訂正します。 =IF(ISERROR(SMALL(IF($A$1:$A$7="","",ROW($A$1:$A$7)),ROW())),"",INDEX($A$1:$A$7,SMALL(IF($A$1:$A$7="","",ROW($A$1:$A$7)),ROW())))

Coo121493
質問者

お礼

なるほどセルの場所をしらべてやるんですね、考えつかなかったです、助かります(*- -)(*_ _)ペコリ。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

B1: =IF(ROW(A1)>COUNTIF($A$1:$A$7,"<>"),"",INDEX($A$1:$A$7,SMALL(INDEX(($A$1:$A$7<>"")*ROW($A$1:$A$7),,),COUNTIF($A$1:$A$7,"")+ROW(A1)),1)) 後は、ドラッグダウン・コピーしてください。 この数式は、A:A は、入れるとエラーになりますので、必ず、必要最小限の範囲の設定をしてください。 COUNTIF($A$1:$A$7,"<>") など、$A$1:$A$7 は、データ範囲ですが、 ROW($A$1:$A$7) のROW関数を使った部分のみ、そのデータの範囲のはじめは、必ず、$A$1で、範囲は、データの範囲と同じ長さにしなければなりません。できるだけ、A1 から式を作るのが楽です。 また、空白値は、="" の場合は、最終行にエラーが出ます。 なお、こちらの予想しているセルのデータの内容と違うとき、例えば書式等で空白値にしてある場合は、うまく行きません。

Coo121493
質問者

補足

これはまた別の書式ですね。色々できるんですね。参考になりました。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

1.A列を選択 2.Ctrl+「g」 3.セル選択 4.空白セル→OK 5.Ctrl+「-」 6.行全体→OK 以上をマクロ記録でもすればいかが?

Coo121493
質問者

お礼

私の作る表はみんなが使うので、マクロだと都合がわるいんです、説明不足ですいません。

  • dec02
  • ベストアンサー率36% (578/1602)
回答No.2

列を指定 データ → オートフィルタにチェック 列の▼【空白以外のセル】を選びます。

Coo121493
質問者

お礼

すいません・・自動でセルかえたかったのです、説明不足ですいません。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

VBAでやる方法もありますが、関数で実現するなら、B1セルに以下の式を入れて Shift + Ctrl + Enter で入力して下さい。B2以下にはB1をコピー =IF(ISERROR(SMALL(IF($A$2:$A$8="","",ROW($A$2:$A$8)),ROW()-1)),"",INDEX($A$1:$A$8,SMALL(IF($A$2:$A$8="","",ROW($A$2:$A$8)),ROW()-1)))

関連するQ&A