- 締切済み
INDEX関数SMALL関数を使って空白行を詰める
シート1にINDEX関数SMALL関数を使って空白行を詰める表を作成したのですが詰めた表をシート2に表示することはできないのでしょうか。 =IF(COUNTIF($A4:$A4,0)=0,MAX(D$3:$D3)+1,"") =IFERROR(INDEX(A:A,MATCH(ROW()-3,$D:$D, )),"")この表をシート2に表示する方法
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- SI299792
- ベストアンサー率47% (772/1616)
- imogasi
- ベストアンサー率27% (4737/17069)
質問の状況(データなど)とと意味が、質問に良く表現で来てないと思う。下記の点で。 下記の配列数式を使わない方法なら、改めて質問しなおしたらどうか。 (1)データのあり様が書いてない (2)式が書いてない(SMALLを使った式は質問に出てない) (3)シート1の式の結果を、シート2のどこへ、持ってきたいのか。(同じ内容のものだろうが) 易しいのはシート1の部分をコピーして、シート2の望む部分に、「値」貼り付けする方法もある。 関数でやりたいならその旨うを、質問にはっきり書くこと。 (4)シート1にデータを使って、シート2に結果を持ってきたいのなら、 下記例では、B1:B10を範囲指定しておいて式は、 =INDEX(Sheet1!A:A,SMALL(IF(Sheet1!A:A<>"",ROW(Sheet1!A:A)),ROW())) とすれば仕舞だろう。シート1、2は、Sheet1、Sheet2でやった例です。 先頭の1セルに式(配列数式を)設定し、下方向に式を複写する方式もあると思う。 ーー シート1のA1:A10にデータが a b c d e f とあるとする。 ーー 「エクセル 空白行を詰める Small」でWEBで照会すると 記事が出るが、そこにずばりの式がある。 http://office-qa.com/ それを使って 例えばc1:C10を範囲指定して =INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A)),ROW())) と式をいれて、SHIFT+CTRL+ENTERの3つのキーを同時押しする。 B1;B10に上詰めで a b c d e f と詰めて出る。 これは「配列数式」という仕組みを使っているが、難しいし、問題もある。 この式の(組合わせの)意味も難しいが、質問者の質問表現からして大丈夫かな。