• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで関数でお聞きします。)

エクセルで関数でデータをまとめる方法とは?

このQ&Aのポイント
  • エクセルでデータをまとめる方法を教えてください。
  • シート間でデータを転送する方法はありますか?
  • B列の特定の値の個数を合計して表示する方法を教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 それはSheet2のA列にデータを表示する必要があるのでしょうか?  それは兎も角として、以下の様な方法は如何でしょうか?  今仮に、Sheet3のA列を作業列として使用するものとします。  まず、Sheet3のA1セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="++",ROW(),"")  次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に貼り付けて下さい。  次に、Sheet2のA1セルに次の関数を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"","++")  次に、Sheet2のB1セルに次の関数を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet78!$B:$B,SMALL(Sheet3!$A:$A,ROWS($1:1))))  次に、Sheet2のA1~B1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  以上です。

noname#201375
質問者

補足

ご回答ありがとうございます。 自分が作りたかったのは回答者さまのSheet1のデータの中から 対象の行のデータを全て抽出してSheet2の様な表を作ると言うものです。 再度アドバイスいただけたらありがたいです。

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

>※実際は文字の完全一致では無く頭文字の一致で行いたいです。 という御要望にも対応する方法を思い付きましたので、以下に記させて頂きます。  まず、Sheet3のA1セルに次の関数を入力して下さい。 =IF(LEFT(INDEX(Sheet1!$A:$A,ROW()),LEN("++"))="++",COUNTIF(INDEX(Sheet1!$A:$A,1):INDEX(Sheet1!$A:$A,ROW()),"++*"),"")  次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に貼り付けて下さい。  次に、Sheet2のA1セルに次の関数を入力して下さい。 =IF(ROWS($1:1)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet78!$A:$B,MATCH(ROWS($1:1),Sheet3!$A:$A),COLUMNS($A:A)))  次に、Sheet2のA1セルをコピーして、Sheet2のA列~B列の2行目以下に貼り付けて下さい。  頭文字の一致で抽出する方法に関しては以上です。  後それから、(2)の >シート1で、B列の【ああ】と【いい】と【うう】と入力された個数だけを列の一番下に合計で表示したい とは、どの様な意味なのでしょうか?  御質問文の中に記されている例では、Sheet2のB列に現れているデータは【ああ】と【ええ】と【おお】であって、【ああ】と【いい】と【うう】ではないという事から考えますと、(2)の御要望はSheet2の表の内容とは全く関係が無く、単純にSheet1のB列の中で、【ああ】が現れている回数と【いい】が現れている回数と【うう】が現れている回数を(A列のデータが何であるかには関係なく)単純に合計した値を表示したい、という事の様に思えるのですが、この様な理解で宜しいのでしょうか?  もし、上記の理解で宜しいのでしたら、Sheet1のB列の一番下のセルに次の関数を入力されると宜しいかと思います。 =SUMPRODUCT(COUNTIF(INDEX(B:B,1):INDEX(B:B,ROW()-1),{"ああ","いい","うう"})*1)

関連するQ&A

専門家に質問してみよう