• 締切済み

Excel 空白セルを詰めて表示する方法

<sheet1>にある表をオートフィルタを使用せず,関数で<sheet2>のように空白を詰めた状態にしたいと思っています。 <sheet1>    A    B   C 1 100 -100 2 100 -100 3 -200 100 100 4 5 <sheet2>    A    B   C 1 100 -100 -100 2 -200 100 100 3 100 4 以前に似た質問があり,それを参考にやってみたのですがどうもうまくいきませんでした。文字列と数値では式も変わるものなのでしょうか?参考にした例もあげておきます ------以下,参考にした例------ <図1>     A     B 1   あいう 2         えお 3   かきく 4         けこ 5   さしす <図2>各行の空白セルを詰めて表示させる     A     B     10  あいう   えお 11  かきく   けこ 12  さしす 13 14 【関数】 A10: =IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1))))

みんなの回答

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

>例の通りに入力してうまくいったのですが,あまり詳しくないもので自分のデータでやるとどこを調整していいかわからず,うまくいきません。Ctrl+Shift+Enterもやっているんですが…。 例示のデータでうまくいったのなら、単純に数式の設定の仕方がまずいだけだと思います。 例示のデータの「A$1:A$5」の部分を実際のデータ範囲に指定すれば(A1の部分はそのままで)うまくいくはずです。

takatake5140
質問者

お礼

回答ありがとうございます。 いろいろ試してみた結果,なんとか空白を詰めて表示できました。 どうやらA1の部分より上に行があったせいでダメだったようです。やはり似た式をそのまま使うのはうまくいかないですね。 データの範囲指定を変えて,もう少しやってみます。

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

(おそらくレイアウトが崩れていて)Sheet1とSheet2の位置関係が良くわかりませんが、少なくとも後者のデータの数式は問題ありません。 配列数式なので、もちろんCtrl+Shift+Enterで確定しているのですよね。 実際に後者の例をセルに入力してうまく表示できるか確認してみて下さい。 #表示時データ数が多い場合は上記のような配列数式はあまりお勧めできません。 このようなケースでは、関数で対応するのではなく、データ範囲を選択し、Ctrl+Gでジャンプダイアログを出し、「セル選択」で「空白セル」にチェックを入れ「OK」して、そのまま空白セル上で右クリックし「削除」で「上方向」にして空白セルを詰める処理をすることをお勧めします。

takatake5140
質問者

お礼

回答ありがとうございます。 レイアウトがおかしくなってました…。すいません…。文字列が整数に置き換わったものとして示したつもりでした。 例の通りに入力してうまくいったのですが,あまり詳しくないもので自分のデータでやるとどこを調整していいかわからず,うまくいきません。Ctrl+Shift+Enterもやっているんですが…。

関連するQ&A