• ベストアンサー

Excelの機能に関して

Excelで次のような計算を行う機能はあるでしょうか。もしあるようでしたら、その機能の名前とその機能の使い方を教えてください。 A B    D E a 1    a 5 b 2    b 3 c 3    c 3 a 1 a 3 b 1 A列にあるa,b,cという名称のものが、それぞれB列にある数字の分あるとします。これを、何らかの機能を用いて、D,E列のように整理したいのです。 どなたかご存知のかたがいらっしゃいましたら、教えていただけると大変たすかります。どうかよろしくお願いします。

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

  • ベストアンサー
  • ki-ro-ro
  • ベストアンサー率49% (106/213)
回答No.3

1行目から6行目までデータがあるとして。 以下の関数をE1に入れて、E2・E3・・・にコピーする。 =SUMIF($A$1:$A6,$D1,$B$1:$B6) 解説 D1とA1セルからA6にあるデータが同じ行の、B1からB6までのデータを足し算する。 100行までデータがあるなら、=SUMIF($A$1:$A100,$D1,$B$1:$B100) A行とB行のデータは増えていくと思いますので、後で訂正が大変なので100ではなく多めにする方が良いでしょう。 面倒なら「=SUMIF($A$1:$A$65536,$D1,$B$1:$B$65536)」でも可。 「$」がついてるのは「絶対参照」コピーしても変化しない。 「$」がついていない関数をコピーすると「=SUMIF(A2:A7,D2,B2:B7)」に変化してしまいます。 E1に「=SUMIF(A1:A6,D1,B1:B6)」 E2に「=SUMIF(A1:A6,D2,B1:B6)」 E3に「=SUMIF(A1:A6,D3,B1:B6)」 でも結果は同じですが、コピーすると上記説明のように変化するので、「$」をつけてコピーします。

047y321e
質問者

お礼

ご回答頂きありがとうございました。 実際にやってみて、思ったとおりになりました。

その他の回答 (3)

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

SUMIF関数を使う前にa,b,cなどがどれだけあるかを調べることが必要でしょう。すべてのデータは2行目から下方にあるとしてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")) これで新しい文字列があれば上から番号が振られます。 そこでお求めの表ですがD2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(COUNTIF(D:D,ROW(A1))=0,"",INDIRECT("A"&MATCH(ROW(A1),D:D,0))) E2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(D2="","",SUMIF(A:A,D2,B:B))

047y321e
質問者

お礼

ご回答ありがとうございます。 最終的にやりたいことがあるのですが、これはその基本的な知識として必要なものでして、その最終的にやりたいことをやる際には、必要になるa,b,cの数は大体1200種類になると思います。ちなみに、これらは完全にランダムの順番で、複数のシートをまたいで記入されるので、自動的に整理するシステムができないと手に負えそうにありません。 また何度か、この掲示板を利用して質問することもあると思いますので、その時にまたご教授頂ければ幸いと存じ上げます。

回答No.2

ピボットテーブルを使うのが簡単です。 http://www11.plala.or.jp/koma_Excel/contents3/mame3027/mame302701.html 「ここに行のフィールドを・・・」にaの列を、「ここにデータアイテムを・・・」に数字の列をドラッグします。 別の方法としてはフィルタオプションとSUMIF関数を使う方法があります。 D列の重複なしの項目を取り出すにはフィルタオプションを使います。 http://www11.plala.or.jp/koma_Excel/contents6/mame6042/mame604203.html ただし、「リスト範囲」はA列だけにします。 E列についは以下のようになります。 =SUMIF($A$1:$A$100,$D1,$B$1:$B$100) どちらも1行目に見出しが必要です。

047y321e
質問者

お礼

ビボットテーブルですね。 この機会に、ビボットテーブルの機能も勉強してみようと思います。 ご回答いただきありがとうございました。

  • gimpei
  • ベストアンサー率33% (262/782)
回答No.1

sumif関数で出来る典型的な事例ですね。 例がシートのA1セルから始まり、 データ数が100として、 E1に、=sumif($A$1:$A$100,$D$1,$B$1:$B$100) E2以降はコピペという感じで。

047y321e
質問者

お礼

回答ありがとうございます。 sumif関数ですね。機能があることは予測できても、ひとつひとつ機能の説明をみて探していたら、二時間も三時間も経ってへとへとになってしまいました。本当に助かりました。 まだまだ使い始めたばかりで慣れませんが、なんとか頑張っていこうと思います。

関連するQ&A

  • エクセルの列に関して

    エクセルの列について、自動で列が挿入されるよう設定したいのですが、よく解らないのですが、例えば列、A、B、C、D、Eとあった場合、C列に何も数字がない場合はそのままですが、C列に数字を記入した場合、列CとDの間に自動で新しい列を挿入できるようにしたいのですが、可能ですか? また、CとDの間に自動でできた新しい列をC2とした場合、そのC2の列に数字を入れたらまた新しい列C3(C2とDの間の列)ができるよう(C5迄できたら…)にしたいのですが…。 また、C列の部分(C1~C5の部分)だけを数式を使って計算することも可能ですか? 解る人がいたらお願いします。 A B C D E … 1 1 1 1    ↓ A B C C2 C3 D E …            J 1 1 1 1     1             =Cの合計は2     とまぁ図で書くとこんな感じなんですがよろしくお願いします。

  • エクセル関数の質問

    エクセル2003を使用してます A B C D 1 0 0 0 1 2 3 -1 0 8 5 1 7 -3 2 0 0 0 0 0 1 3 8 2 3 1 6 0 0 0 0 2 5 1 0 0 上記のような数字が何行もあるのですが A列の次はB列を B列の次はA列を計算して C列に、A列とB列をプラスした合計 D列に、A列とB列をマイナスした合計 を算出したいのですが、分かる方がいましたらご教示お願いします。

  • エクセルでこんな事できるのでしょうか?

    みなさん、こんにちわ! エクセルの計算式もしくはVBAどちらでも構いません。 以下の事が可能になるでしょうか? 運動会に使うデーター資料として A列は、走る子供のゼッケン番号です。 B列には順位。 A・B列は手入力します。 そしてB列の順位を他の表で使う為、C列・D列・E列に1位から3位までの順位を列単位に表示を変更しています。 このC・D・E列を計算式もしくはVBAで自動的にB列から抜き出す事が出来ないでしょうか? 9行目からC・D・E列の数字が変わっているのは1回目の競争と2回目の競争の為です。 また、運動会ですので毎回走る子供の人数が違います。    A B C D E 1   3 1 3 4 8 2   4 2 3 4 8 3   8 3 3 4 8 4   2 4 3 4 8 5   1 5 3 4 8 6   5 6 3 4 8 7   7 7 3 4 8 8   6 8 3 4 8 9   6 1 6 3 7 10   3 2 6 3 7 11   7 3 6 3 7 12   4 4 6 3 7 13  1 5 6 3 7 14  2 6 6 3 7 15  5 7 6 3 7

  • 検索の仕方を教えて下さい

    Excelの検索の仕方を教えて下さい。 下記のような表があります。  A B C D E D … 1 あ い う え お か 2 1 A氏 5 3,198 35 計算式       6 3,215 27       7 3,148 41       8   0 0       9   0 0 7 2 B氏 5 18,000 25       6 17,250 41       7 18,140 30       8    0 0       9    0 0 1行目には、文字列が入力されています。 A2~A6・B2~B6及びA7~A11・B7~B11はセルが結合してあり、それぞれ1つのセルになっています。 D2に計算式を入れる場合ですが… 別のシートに表があり、=IF(Sheet2!A1=0,0,ここからの計算式です。) Sheet2のA1には数字の1が入力されています。 まず、A2の1という数字を検索し、次にC列の5を検索し、5の横列E列の数字(3,198)を求める。 C列とE列の交わる値を結果と出したいのです。 =IF(Sheet2!A1=0,0,VLOOKUP(Sheet2!A1,A2:E11,INDEX(C2:E11,MATCH(5,C2:C11,0),MATCH("え",C2:E2,0)))) としたのですが、計算結果は#REF!です。 どのように計算式を立てれば良いのでしょうか?

  • エクセルのデータ結合について

    エクセルのB列に1~1000までの数字がランダムに500個入っています。 エクセルのC列にも1~1000までの数字がランダムに500個入っています。 同様の列が10行あります。 (B列以降には入っている数字と入っていない数字があります) A列には、1~1000までの数字が順番どおりに全て並んでいます。 次のような感じです。 (並べ替え前の文字列) A  B  C  D・・・  1  3   2  6 2  1   4  5 3  5   5  1 4  6   3 5        6       これを、下の列のように、B列以降の列の数字を並べ変えたいのですが、エクセルはこのような各行の並べ替えはできますでしょうか? 方法がありましたらご教示頂ければ幸いです。 よろしくお願いいたします。 (並べ替え後の文字列) A  B  C  D・・・  1  1     1 2     2 3  3   3 4     4 5  5   5  5 6  6     6

  • VBA

    エクセルVBAについて教えてください。 シート1 A列   B列   C列   D列   E列    F列 ・・・            商品A  商品B  商品C  商品D・・・ 日付  名前(1)   3           2     1 日付  名前(2)         1     3  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・  ・     ・     ・     ・     ・    ・ シート2 A列   B列    C列    D列    E列 日付  名前(1)   商品A   3               商品C    2               商品D    1 日付  名前(2)   商品B    1               商品C    3 ・      ・      ・      ・  ・      ・      ・      ・ ・      ・      ・      ・      上記のような、エクセルで作ったシート1があります。 これを、シート2のようにコピーしたいと思っています。 商品は20列あり、数字が入っている列と入っていない列があります。 数字が入っている列の商品と数字をコピーして、すべてコピーが 終わったら次の行のコピーしていく。 行は100ほどあります。 よろしくお願いします。

  • エクセル2007の計算について

    エクセル2007の計算についてですが、A列に100個データがあり、B列とC列にそれぞれ1個データがあるとします。そこで、D列のD1にA1*B1-C1の計算結果を表示させました。次に、D2以下も同様の計算をするために、D1のセルを選択して、矢印無しの十字キーを下に伸ばしてD2にA2*B1-C1、D3にA3*B1-C1・・・、D100にA100*B1-C1の結果を表示させようとすると、100個分の計算結果は表示できるのですが、D2はA2*B2-C2、D3はA3*B3-C3・・・というように、B列とC列も一つずつ下がって計算されてしまいます。この場合、B列とC列には1個しかデータがない(B1に一個、C1に一個)ため、D2以下の計算結果は0になります。B列とC列を下げずに、A列のデータだけ下げて連続計算するにはどうすればよろしいでしょうか。

  • EXCELの計算式(%に応じて点数を割り振る)

    以下のようなEXCELのセルがあります。 A列 任意の数字 B列 任意の数字 C列 任意の数字 D列 C列÷(A列-B列)の結果を、小数点2ケタ以下切り捨て E列 D列の数字を10倍した値 この時、D列、E列にはどのような数式が入るのでしょうか? 関数がよくわかりません。 恐れ入りますが教えて頂けますでしょうか。

  • Excelで参照をして計算式を作る方法

    こんにちは。 Excelの数式で困っていますので、教えて下さい。 下のようなExcelの表で、 A2~D2、A3~D3、A4~D4の【数】にはゼロを含む何らかの数字が入ってて、 【空】は空欄です。    A列 B列 C列 D列 E列 1   1   2   3   4 2   数  数  数  数 3   空  数  数  数 4   空  空  数  数  E2、E3、E4に数式を入れたいのですが、2~4行目の数字が入っているか 入っていないかを1行目の数字に対応させて、 A2、A3、A4に数字が入っていれば、A1の数字を計算に入れて、空欄であれば 計算にいれない。 E2には1+2+3+4で【10】 E3には2+3+4で【9】 E4は3+4で【7】 というふうに数字が入っている欄だけを1行目の数字を絶対参照して合計を求めたいのです。 SUMIFという関数を使って、E2にSUMIF(A2:D2,▲,$A$1:$D$4)という式を入れてみたのですが、▲には半角スペース・*(アスタリスク)・?(クエスチョンマーク)などを入れてみたのですが、エラーで計算が成り立ちません。 ▲のところに【空欄】という意味のものを入れたいのですが、それがあるのかないのかわかりません。 もしくは、この数式を使うのではなく、他の数式を利用するのでしょうか? 説明が分かりにくいかもしれませんが、よろしくお願いします。

  • エクセルに以下のような複雑な計算をさせたいです。

    エクセルに以下のような条件の計算をさせたいです。 「2a , 3b , 5c , 6d , 8e , 10f」 a+b+c+d+e+fが上のどれよりも小さくなる場合の、 a,b,c,d,e,fの数字の組みわせで最も小さいものを求めたいです。 2a ≧ a+b+c+d+e+f 3b ≧ a+b+c+d+e+f 5c ≧ a+b+c+d+e+f 6d ≧ a+b+c+d+e+f 8e ≧ a+b+c+d+e+f 10f ≧ a+b+c+d+e+f (ただし、a,b,c,d,e,fは正の数) ※分かりやすいように、これらの数字は適当に入れたので、答えが無いかと思います。 実際は別の数字に置き換えます。 ※また、コンピュータが無限に計算し続けることを防ぐために上限を決めてもいいです 関数かマクロで計算させる方法を教えて下さい。 わかりやすくなるようにシンプルに説明しましたが、 実際は最大13組まで計算することになり、 自力でも計算してみましたが、とてつもなく時間がかかりました。 出来ればコンピューターに計算させたいと思い質問しました。

専門家に質問してみよう