• 締切済み

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に表示する方法

みんなの回答

  • SI299792
  • ベストアンサー率47% (772/1616)
回答No.2

どのような表か上げた方がいいです。 この式からの推測で、4行目から、ワークエリア利用可、と思います。 A4: =IFERROR(INDEX(Sheet1!A:A,MATCH(ROW()-3,Sheet2!B:B,0)),"") 下へコピペ。 B4: =B3+(Sheet1!A4<>"") 下へコピペ。(ワークエリアです。目障りなら非表示にして下さい。) SMALL 関数は出てきません。(使おうと思えば使えますが)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

質問の状況(データなど)とと意味が、質問に良く表現で来てないと思う。下記の点で。   下記の配列数式を使わない方法なら、改めて質問しなおしたらどうか。 (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 と詰めて出る。 これは「配列数式」という仕組みを使っているが、難しいし、問題もある。 この式の(組合わせの)意味も難しいが、質問者の質問表現からして大丈夫かな。

関連するQ&A