web-dev-qa-db-ja.com

Excel-空のセルをスキップする配列数式

テキストが含まれているときにセルに入力する配列数式がありますが、セルが空白の場合は無視して次のセルに移動します。私が持っている問題は、例えば私が持っている順序でそれをしないということです:

範囲は

_-A
-(BLANK CELL)
-(BLANK CELL)
-D
-E
-F
-(BLANK CELL)
-H
-(BLANK CELL)
_

式の結果

_-A
-E
-F
-H
_

文字を含むセルをスキップしています。誰かが助けることができますか?

式:

{=IF(ISERROR(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3)),"",INDEX(B4:$B$12,MATCH(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3),IF(B4:$B$12<>"",ROW(B4:$B$12)),0)))}

6
PhoenixJay

私は問題はあなたが_B4:$B$12_として範囲を持っていることだと思います、それで_B4_の周りに$記号がないので、列を下に数式をドラッグするときに参照を変更します...しかし、式はあなたが必要とするよりも少し複雑に見えるので、私はむしろより良い代替案を提案したいと思います:

どのバージョンのExcelを使用していますか?

Excel 2007以降では、このバージョンを試してください

=IFERROR(INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))),"")

最初のセルが_D4_(実際の開始セルと一致するようにROWS(D$4:D4)の部分を変更)であり、数式を列の下にドラッグしていると仮定します

で確認 CTRL+SHIFT+ENTER

IFERROR関数が使用できない以前のバージョンでは、このバージョンを使用できます

=IF(ROWS(D$4:D4)>COUNTA(B$4:B$12),"",INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))))

8
barry houdini

よりシンプルで簡単な方法が見つかりました。基本的にExcelはすべての空白セル("")等しいので、別の簡単な方法は、データを含む列を選択し、[データ]タブの下のRemove Duplicatesをクリックすることです。これにより、(スキップ)すべての空白の空のセル。

Simple and easy way to remove blank cells from a column in Excel - by Francis Lacle

0
Francis Laclé