- ベストアンサー
エクセルで関数でデータをまとめる方法とは?
- エクセルでデータをまとめる方法を教えてください。
- シート間でデータを転送する方法はありますか?
- B列の特定の値の個数を合計して表示する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それは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行目以下に貼り付けて下さい。 以上です。
その他の回答 (1)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>※実際は文字の完全一致では無く頭文字の一致で行いたいです。 という御要望にも対応する方法を思い付きましたので、以下に記させて頂きます。 まず、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)
補足
ご回答ありがとうございます。 自分が作りたかったのは回答者さまのSheet1のデータの中から 対象の行のデータを全て抽出してSheet2の様な表を作ると言うものです。 再度アドバイスいただけたらありがたいです。