• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数について誰か教えてください。 )

エクセルの関数について教えてください

このQ&Aのポイント
  • エクセルの関数について詳しく教えてください。
  • シート1の特定の範囲にデータが入力された場合、そのデータの一部をシート2に表示する方法を教えてください。
  • 未入力のセルは対象外とし、シート2には表示しないようにしたいです。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 参考になるかどうか判りませんが・・・ かなり無理矢理って感じの方法になります。 ↓の画像のようにSheet1に作業用の列(表)を使わせてもらっています。 Sheet1のQ3セルに =IF(COUNTA(I3:P3)=0,"",ROW(A1)) R3セルに =IF(OR($Q3="",COUNTA($I3:$P3)<COLUMN(A1)),"",INDEX($I3:$P3,,SMALL(IF($I3:$P3<>"",COLUMN($A:$H)),COLUMN(A1)))) これは配列数式になってしまいますので、 この画面から数式をR3セルに貼り付け後、F2キーを押すか、数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrl+Enterキーで確定します。 数式の前後に{ }マークが入り配列数式になります。 そして、R3セルのフィルハンドルで列方向にY3セルまでオートフィルでコピーします。 Q3~Y3セルを範囲指定し、Y3セルのフィルハンドルで下へオートフィルでコピーします。 これで、空白以外の行に行番号が・元データが左詰めで表示されるはずです。 このデータを元にSheet2に表示させるようにします。 Sheet2のA4セルに =IF(COUNT(Sheet1!$Q$3:$Q$550)<ROW(A1),"",INDEX(Sheet1!$R$3:$Y$550,SMALL(Sheet1!$Q$3:$Q$550,ROW(A1)),COLUMN(A1))) (これは配列数式ではありません) として、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 以上、長々と書いた上に、少し手間がかかる方法ですが 参考になれば幸いです。 他に良い方法があれば読み流してくださいね。m(__)m

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

作業列をシート1に設けて対応するのが判りやすいでしょう。 例えばシート1のR3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(I3:P3,"*")=0,"",MAX(R$2:R2)+1) 次にシート2のA4セルには次の式を入力してP4セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$R:$R,ROW(A1))=0,"",IF(INDEX(Sheet1!$A:$P,MATCH(ROW(A1),Sheet1!$R:$R,0),COLUMN(A1))=0,"",INDEX(Sheet1!$A:$P,MATCH(ROW(A1),Sheet1!$R:$R,0),COLUMN(A1))))

bom_baye
質問者

お礼

何とか解決いたしました。ありがとうございました。

noname#204879
noname#204879
回答No.1

Sheet2!A3: =IF(COUNTA(Sheet1!$I3:$P3),IF(Sheet1!A3="","",Sheet1!A3),"")