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

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

エクセルで関数でお聞きします。

いつもお世話になっています。エクセルで、データを簡単にまとめたいのですが、こんな事が出来る方法がありましたら是非ご教授下さい。 Sheet1              Sheet2     A    B             A    B     1   ++   ああ        1   ++   ああ 2   --   いい        4   ++   ええ 3   **   うう         9   ++   おお 4   ++   ええ 5   //   おお 6   --   ああ 7   **   ああ 8   //   いい 9   ++   おお 10  **   いい 見づらくて申し訳ありませんが、 (1)例えばシート1の中でA列で++と入力された行だけをシート2に飛ばしたい。 ※実際は文字の完全一致では無く頭文字の一致で行いたいです。 (2)シート1で、B列の【ああ】と【いい】と【うう】と入力された個数だけを列の一番下に合計で表示したい 以上どうかご教授ください。

noname#201375
noname#201375

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

  • ベストアンサー
  • 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

  • Excelで特定の文字のある列の数値を合計する関数

    Excelで、特定の文字列を含む列の数値の合計を、自動で集計してくれる関数はあるでしょうか。 複数シート(シートA、シートB)で構成されるExcelファイルで、シートAにはすべての取扱い商品が記載されています。現在は、シートBに入力されている商品ごとの販売個数の合計をシートB上でsumにより求め、その数値をシートAの該当箇所に、手で入力しています。シートAに記載されている商品が多いため、この手作業を関数で代替したいのです。 ただし、シートBに、次のような条件があります。 シートBの1行目(A1,B1,C1,D1...)には、見出しとして"氏名" "りんご" "バナナ" "いちご"...などがあり、2行目以降は、販売者の名前と、その人が販売した商品の個数が入力されています。掲載人数は40人(行数で41行)ほどです。 ところが、誰も"りんご"を販売していなければ、その列自体がなくなります。シートBには販売された商品しか記載されておらず、たとえばB1は、必ずしも"りんご"ではありません。 シートAからBを参照し、シートBの1行目に、もし"りんご"の文字があれば、そのりんごの列の2行目以降にある販売数の合計を、"バナナ"があれば同じくバナナの販売数の合計を、じかにシートAのそれぞれの合計欄に表示させたいのです。 なお、シートBの行と列を入れ換えたシートB'を作るのは、避けたいと思っています。理由は、販売者の名前でも、全商品の販売個数をシートAにsumif関数で集計していること。また、シートは1週間ごとに、今後30枚程度まで増え、その各週合計もシートAに集計する予定のため、シートは各週1枚だけにしたいのです。 このような条件のもと、Excelの関数で集計する方法があれば、教えてくださいますか。

  • エクセルの関数について

    エクセルのシート1で1行目には見出しがあります。 A1には「店名」の文字 A2には、A店 A3にはC店 A4にはB店 A5にはA店とA2~A200には、ランダムにA店~C店の文字がランダムに入っています。 B2には、「個数」の見出し文字。B2には 3 B3には 201  B4には 42 などとB2~B200まで色々な数字が入っています。 ちなみに B列には 0~300までのランダムな数字。 これをシート2に、B列の数の区分けをしたいのです B列の区分け 0~30 31~50  50~300  よって、シート2のA1には「店名」という文字。B2には 0~30  C2には 31~50  D2には50~300という文字が入っています・ シート2のA2には、A店 シート2のA3には B店 シート2の A4には C店 という文字が入っています。 シート2のB2にはシート1のA店のB列にある B2~B200に入ってる文字の 0~200までに入ってる数字 0~30の セルの個数を出したいのですが どうやってシート2に関数を入れたらいいのですか?教えてください

  • エクセル 関数

    sheet1 エクセルのA列に名前が入力されています。 B列にはその個数が正の数または負の数で記入されています。 小数点を含む数はありません。 尚、A列の名前は同じ名前が何度も入力されていて、その行ごとに 個数は異なっています。 上記の状態でsheet1のB列全体の負の数を0(数値)として 同じB列に表示させるには、 どのような数式をシート内のどの部分にはりつければよいのか教えてください。 ROUNDDOW関数を使っていろいろためしましたが、エラーばかりで質問させていただきました。 よろしくお願いします。

  • エクセル関数の質問

    よろしくおねがいします。 以下のようなA列B列に数字が何行もあるのですが、 A列の数字(時間なのですが)を二つを別シートに記入すると A列の二つ分の期間を参照してB列の数字の合計や個数を計算したいのですが、 VLOOKでは期間分の値を計算できないので 何かいい方法はないでしょうか? A        B 1000      1 2000     -5 3000      8 4000      1 5000      3 6000      5 7000     -3 8000      2 9000      3 別シートにA列の数字を下記の例のよう二つに入力すると A列の期間を参照してB列の値を計算して B列に全合計 C列に+の合計 D列に-の合計 E列に+の個数 F列に-の個数 を表示させる。 <例1> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 1000 5000  8        13        -5         4        1 <例2> A   B(全合計) C(+の合計) D(-の合計) E(+の個数) F(-の個数) 6000 9000  7        10        -3         3        1 のような感じで計算したいのですが わかりづらくてすいませんが、分かる方がいたらご教示お願います。

  • エクセルの関数について質問です

    エクセルの関数について質問です A列に任意の個数「1」が入り、続けて「2」が任意の個数入力されています。B列に任意の文字列が入力されています。(うまく説明できないので、図を参照してください。) A列に「2」が入力されているB列の文字列を、関数でD列に取り出したいのですが、どのような関数でできるでしょうか? 「1」も「2」も個数は変動します。一度「2」が入力された以降の行に「1」が入ることはありません。「1」と「2」以外がA列に入力されることはありません。 色々考えたのですが、どうもうまくいきません。 VBAを使用すればできるとは思うのですが、どうしても関数でなければいけない事情があります。どなたか助けていただけないでしょうか?

  • エクセル関数についてです。

    教えて下さい。 シート2のD列に以下の条件の計算結果を出したいのです。 シート2のA列、B列を文字列で入力します。 参照場所はシート1のA列、B列です。 シート2のA列とB列に入力したものが、 シート1のA列B列に物と一致した項目でシート1のD列の合計をシート2のDに計算で出したいのです。 例 シート2 A1「タイヤ」 B1「Z」と記入    シート1 A1「タイヤ」、A2「ホイール」、A3「タイヤ」          B1「Z]、B2「X」、B3「Z」          D1「1000」、D2「400」、D3「2000」 となっている場合に    シート2のD1にに1000+2000=3000となるように計算式をつくりたいのです。 参照が1つの場合(A列のみ)はSUNIF関数でできたのですが、2つができません。ちなみにエクセル2000です。 よろしくお願いいたします。               

  • Excelの関数を教えてください。

    Excelの関数で例えば シートAのB行の中の値とシートBのセルA1の値、シートAのC行の中の値とシートBのセルB1の値が一致した行のF列の値を返す関数を考えているのですが、いろいろ試してもエラーになってしまいます。(B列とC列の一致する行は1つしかありません) これができないと家に帰れません;; どなたか、教えてください! よろしくお願いします。

  • SUMPRODUCT関数の値としての#NUM!

    Sheet2のB2に、 =SUMPRODUCT((A2=Sheet1!A:A)*1) というような式を入れると、#NUM!が出ます。 Sheet2のA2と一致する、Sheet1のA列の値の個数を求めるにはどうすればいいでしょうか(もっといえば、一致する行のK列の合計を求めたい)。 うえの簡単な式のどこがまちがってるのかわからなくて困ってます。

  • エクセル 関数を使わずにデータを取りたい

    EXCELを使ってデータ入力をしたいです。 下の図のように、シート1のA列にコードを入力すると、シート2のテーブルから値を引っ張ってくるようにしたい。 たとえば、シート1のA1に"C001"を入力したら、B1に"赤"が自動入力されるようにしたい。 シート1 A列 B列 行1 C001 シート2 A列 B列 行1 C001 赤 行2 C002 青 行3 C003 黄色 ただし、シート1のB列の値は、入力後に編集するため、ここには計算式を入れたくないのです。 なので、通常ならばB列にVLOOKUP関数を使えばすむことですが、計算式を入れずに上記を実現する方法を教えてください。

  • 【Excel】日付を条件のひとつに指定してデータ集計

    Excel2003を使用しています。 Sheet1   A    B         C 1 4/1  (株)Excel    \100 2 4/1  ACCESS    \300 3 4/1  Excel(株)    \200 4 4/2  Word       \150 5 4/2  Excel       \100 6 4/3  ACCESS(有)  \200 7 4/3  Excel       \100 7 4/3  (有)ACCESS  \100 が入力されている表があります。 Sheet2に   A    B    C 1 4/2  合計値 個数 2 4/3  合計値 個数 Sheet2のA1セルに日付(仮に4/2とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にExcelとします)を検索し、両条件に一致したC列の合計を Sheet2のB1セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 又、上記同様で Sheet2のA1セルに日付(仮に4/3とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にACCESSとします)を検索し、両条件に一致した個数を Sheet2のC2セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 関数で試してみたのですが、うまくいかなかったので、質問させていただきました。 よろしくお願いします。

専門家に質問してみよう