• ベストアンサー
  • 困ってます

Excel データの並び替え

  • 質問No.2286039
  • 閲覧数56
  • ありがとう数3
  • 回答数5

お礼率 75% (43/57)

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

   A  B  C
1  5  5
2  4  4
3  7  7 
4     1
5  1  3
6
7  3

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

  • 回答No.3
  • ベストアンサー

ベストアンサー率 44% (1383/3079)

#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

お礼率 75% (43/57)

なるほどセルの場所をしらべてやるんですね、考えつかなかったです、助かります(*- -)(*_ _)ペコリ。
投稿日時:2006/07/20 10:10

その他の回答 (全4件)

  • 回答No.5

ベストアンサー率 57% (3570/6233)

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

お礼率 75% (43/57)

これはまた別の書式ですね。色々できるんですね。参考になりました。
投稿日時:2006/07/20 10:12
  • 回答No.4

ベストアンサー率 10% (32/318)

1.A列を選択
2.Ctrl+「g」
3.セル選択
4.空白セル→OK
5.Ctrl+「-」
6.行全体→OK

以上をマクロ記録でもすればいかが?
お礼コメント
Coo121493

お礼率 75% (43/57)

私の作る表はみんなが使うので、マクロだと都合がわるいんです、説明不足ですいません。
投稿日時:2006/07/20 10:12
  • 回答No.2

ベストアンサー率 36% (578/1602)

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

お礼率 75% (43/57)

すいません・・自動でセルかえたかったのです、説明不足ですいません。
投稿日時:2006/07/20 10:09
  • 回答No.1

ベストアンサー率 44% (1383/3079)

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

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ