• 締切済み

excelグループごとに他と値が違うセルを知りたい

お世話になります。 Excelで、A列にグループ名があり、B列に値が入力されているリストで、同じグループの中で他の値が入力されている箇所を調べようとしています。(わかりにくいですよね・・・) 例えば・・・・ 1 グループ 値 2 いちご b 3 いちご b 4 いちご b 5 りんご a 6 りんご a 7 りんご b (←ここを知りたいです) 8 りんご a 9 ばなな c 10 ばなな c 11 ばなな a (←ここを知りたいです) 12 ばなな b (←ここを知りたいです) ・ ・ ・ というリストがあり、7のb、11のa、12のbを求めたいと考えています。 グループは何百とあり、値はせいぜい10個程度です。 COUNTIFSや、SUMPRODUCTを使ってできないかと色々やってみたんですが、力量不足でうまくいきません。 恐れ入りますが、ご教示いただけますとありがたいです。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

#4です。エクセルの関数での処理が好き、というレベルかもしれないので、 関数でやると、 元データ  A、B、C列 C列はデータ全行に1を入れておく。SUMIFを使うために。 COUNTIFS使用なら、この操作は不要だろうが。 A21:C31ー>前回答で出たデータや結果をコピーして使ったので、範囲が飛んでいるがすみません。 いちご b 1 いちご b 1 いちご b 1 ばなな a 1 ばなな b 1 ばなな c 1 ばなな c 1 りんご a 1 りんご a 1 りんご a 1 りんご b 1 ーー A21:B31のデータ範囲について データーフィルター詳細設定で「重複するデータは無視する」、で いちご b ばなな a ばなな b ばなな c りんご a りんご b が出る(A列データ+B列データの組み合わせで、重複がなく、漏れのない組み合わせリスト)。 A47:B52にこのリスト部分をコピー貼り付けで置くとする。 C47に式 =SUMIFS($C$21:$C$31,$A$21:$A$31,$A47,$B$21:$B$31,$B47) を入れてC52まで式複写。SUMIFS関数を利用した。 ーー 結果 A47:C52には いちご b 3 ばなな a 1 ばなな b 1 ばなな c 2 りんご a 3 りんご b 1 の表ができる。これを見て後、考えては、どうでしょう。 現状の数は判るが、度の行にあるかは、この方法ではわかりにくい。行番号を入れて、元データをソートすれば、行的に固まって見えるが。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

(1)ソートする。グループ順+値順(2列)でソート(並べ替え)すれば、目視で異質のものはシート上で、見てすぐわかるのでは。 (2)ピボットで表を作れば、炙りだせる。 (3)VBAでやれば簡単。  (2)と実質同じのことだが、ロジックをプログラムに組み込めば、こまめな表が作れる。 ーー VBAでの例。 A列グループ列でソートする。 例データ グループ 値 いちご b いちご b いちご b りんご a りんご a りんご b りんご a ばなな c ばなな c ばなな a ばなな b ーー ソートする。 A,B列 グループ 値 いちご b いちご b いちご b ばなな a ばなな b ばなな c ばなな c りんご a りんご a りんご a りんご b これを簡単なVBAで件数表にする。 標準モジュールに下記を作る。 Sub test01() Range("I2:j1000").Clear lr = Range("A100000").End(xlUp).Row MsgBox lr k = 2 Cells(k, "H") = Cells(2, "A") Cells(k, "I") = Cells(2, "B") maekey = Cells(2, "A") & Cells(2, "B") Cells(k, "J") = 0 For i = 2 To lr Key = Cells(i, "A") & Cells(i, "B") If Key = maekey Then Cells(k, "J") = Cells(k, "J") + 1 Else maekey = Cells(i, "A") & Cells(i, "B") k = k + 1 Cells(k, "H") = Cells(i, "A") Cells(k, "I") = Cells(i, "B") '--件数+1 Cells(k, "J") = Cells(k, "J") + 1 End If Next i End Sub 実行。 結果 H:J列 いちご b 3 ばなな a 1 ばなな b 1 ばなな c 2 りんご a 3 りんご b 1 この中から異質のものを目視でみつける。 VBAのプログラムに細かな条件を、簡単に組み込むことはできる。3件以上はリストしないとか。異質なものの行番号をリストするとか。

  • HohoPapa
  • ベストアンサー率65% (454/691)
回答No.3

いちごやばなななど、種類ごと、値ごとの数を数え、 極端に数の少ないグループ名と値のペアがあぶり出せればいいですか? ならば、 添付のようなPivotテーブルで集計するというのはどうでしょうか? あぶり出せれば、 あとはフィルダーを使って絞り込んだり 行位置を特定できるだろうと思います。 そうではなく、 あぶり出した行の背景色を染めるとか C列にそれなりの表示するするといったことを求めているのであれば あぶり出す条件(例えばグループ内で登場する割合が5%未満とか)を 提示してみてください。 その場合、 おそらくVBAを使うことになるものとおもいますので、 その可否も教えてください。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

D2: =A2&B2 C2: =IF(A2="","",IF(COUNTIF(D$2:D$1000,D2)>1,"","←ここ"))

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>A列にグループ名があり、B列に値が入力されているリストで、同じグループの中で他の値が入力されている箇所を調べようとしています。(わかりにくいですよね・・・) 説明が足りないためでしょうか分かり難いです。 仲間と仲間外れの違いについて説明されていません。 例えばA列のグループは同じものが連続していますよね? 連続していないこともありますか? B列の値がA列のグループでB列の値が複数のとき仲間でB列の値が1つだけの行が仲間外れで良いでしょうか? 仲間外れのマークをC列に表示すれば良いでしょうか? それで良ければC2セルへ次の数式を設定して下へ必要数をコピーすれば良いでしょう。 =IF(COUNTIFS(A:A,A2,B:B,B2)=1,"×","")

jesuiscool
質問者

お礼

皆さま、回答いただきありがとうございました。 教えて頂いたことを試してみましたが、私の説明が悪く、うまく活用することができず、結局1つ1つ確認することで作業を終えました。

関連するQ&A

  • エクセル関数 データの抽出について

    エクセル2010 重複データの抽出。 重複データの抽出方法をご教示ください。 抽出先はシート1のA列A3~抽出データの分だけ リストはシート2のB2:AB32まで フィルターオプションなども使ってみたのですが どうも上手くいきません。 どなたか知恵をお貸しください。 方法はできれば関数だといいのですが(データが増えてもいいように) できなければ他の方法でもいいです。 VBAなどは全くの初心者なので出来れば避けたいのですが… シート2     A    B   C    D~AB32 1  "" 2 いちご ばなな いちご りんご 3 みかん いちご ばなな いちご 4 りんご ばなな いちご みかん 5 みかん いちご ばなな りんご 6 ばなな ばなな りんご いちご : : 32 シート1(重複データなし)  A 1  "" 2  "" 3 いちご 4 みかん 5 りんご 6 ばなな 7 : : 抽出リストのデータはシート2のB2:AB32にぎっしり入っています。 宜しくお願い致します。

  • エクセルで並べ替えした値ごとにグループ分けしたい。

    はじめまして。エクセルでどのような式を入れていいのか悩んでいます。 下記のようなファイルで”列D”の値ごとに 数字又はアルファベットなどでグループ分けを”列C”にしたいと思っています。   A   B   C   D 1 日付  曜日 区分 基準値 2 4/1  水  ここ 50010001500 3 4/2  木  ここ 50010001500 4 4/3  金  ここ 100015002000 5 4/4  土  ここ 100015002000 6 4/5  日  ここ 50010001500   ・ 34 5/3  日  ここ 200030005000   ・ 184 9/30 水   ここ 50010001500 列Dを並べ替えて、C2セルには =SUMPRODUCT(1/COUNTIF(D$2:D2,D$2:D2)) C3セルには =SUMPRODUCT(1/COUNTIF(D$2:D3,D$2:D3)) …そのままC184セルには =SUMPRODUCT(1/COUNTIF(D$2:D184,D$2:D184)) といった数式を入れたところ、D列の値ごとに数字をふれました。 …小数点の付いたものですが…サイトを検索して利用してみたので、 あまりSUMPRODUCTを理解していません。 しかしながら、重くなりすぎて、しまいには固まってしまいます。 このシートが80枚ぐらい入れたファイルです。 最終的にはこのファイルの隣に、導いた列Cの値をVLOOKUPにて ”1”を”A”、”2”を”B”…と置き換えています。 何か良い方法がありましたら教えてください。 よろしくお願いいたします。

  • Excelでデータ リスト内の縦のセルの比較

    Excelでグループ毎の縦のセルの比較 マクロにせず実現することはできますでしょうか。 A列 B列 C列 ------------------------ 1 A みかん ○ 2 A みかん ○ 3 B りんご ○ 4 B ぱなな × 5 B りんご ○ 6 C ばなな ○ 7 C ばなな ○ 8 D なし ○ 9 D いちご × 10 F いちご ○ 11 F いちご ○ 上記のようなA列B列の表のシートがあるのですが、 A列のグループ毎にB列同士を比較します。 比較は、グループ内で、一番最初の値を基準として比較し、 基準となった値は、”○”とし、他は、一致したかしないかで ”○”と”×”をC列に表示します。 例でいうと A列のA1~A2は同じAなので、 B1は、最初なので”○”、B2は、B1と同じなので”○” A列のA3~A5は同じBなので、 B3は、最初なので”○”、B4は、B3と違うので”×”、B5は、B3と同じなので”○” とやりたいのですが、 マクロを使わすに関数の組み合わせで実現することはできます でしょうか。

  • excelで1つのセルに複数の値を返す方法はありますか?

    おせわになっております。 excelで質問です。 excel関数でもVBAでもいいのですが、1つのセルに複数の値を返す方法はありますでしょうか?? たとえばVLOOKUP関数だと1つのセルに1つしか返せませんよね?? a=りんご b=バナナ c=すいか d=いちご e=キウイ と設定したしたとして、 a,c,dと入力すると→りんご,すいか,いちご とすべて1つのセルに出るようにしたいのです。りんご,すいか,いちごという値にしたいので、それぞれを別々のセルに入れることはしたくありません。可能でしょうか?? よろしくお願いいたします。

  • エクセルのセル参照で

     A列   B列 C列   1      いちご   =sheet2!A1 2 食堂(1)  ばなな   =sheet2!A2 3      合計    =B1+B2 4      いちご   =sheet2!A3 5 食堂(2)  ばなな   =sheet2!A4 6      合計    =B4+B5        ・        ・        ・ と続くのですが、C列でC1とC2をコピーしてC4・C5に 貼り付けると=sheet2!A4・=sheet2!A5 となってしまいます。 C列が1000行ありますので、これを一括で 入れられる計算式はありますでしょうか? 食堂(3)からも、=sheet2!A5、=sheet2!A6と規則的に 続いていきます。 よろしくお願いいたします。

  • Excelのブックをひとつにまとめたい。

    数人に同じものを入力してもらいそれをひとつの表に簡単にまとめたいのですがなにかいい方法はありますでしょうか?(コピーとかでなく) 例) 【Aさんの表】    A列  B列  1 みかん  1  2 りんご  1  3 ばなな  3 【Bさんの表】      A列  B列  1 なし   2  2 いちご  1 【まとめた表】      A列  B列  1 みかん  1  2 りんご  1  3 ばなな  3  4 なし   2  5 いちご  1  AさんとBさんが入力したブックを【まとめた表】のように一覧にしたいです。AさんとBさんが入力するフォームは同じ物を配布しています。またA列の内容が重複する事はありません。 今まではAさんBさんからもらったデータをコピーで貼り付けたり、入力したりして一覧を作成していました。が、データの量が多いのと、せっかくAさんやBさんが入力したものをまとめるために再度入力するのも時間の無駄だと思い・・・。よい方法があれば教えてください。  

  • Excelについて

    Excelに下記のようなデータが入っているのですが A列   |   B列 りんご |     2 みかん | 3 ばなな | 1 りんご | 6 すいか | 7 かき | 3 みかん | 4 すいか | 8 りんご | 1 *(実際には100件ぐらいのデータが入っています。) A列で同じ「りんご」があれば、同じ行にあるB列の値を合計したいのでがどうすればよいですか? また「りんご」だけでなく他にもあればその値を合計して出したいのですが。 例えば、今回の例では「りんご」が三箇所あるので「2+6+1]で9と表示したいのですが。 イメージとしては、 A列  |   B列 |   C列   |  D列 りんご |    2  |    りんご |  9 みかん |    3  |    みかん | 7 ばなな | 1  |    ばなな | 1 りんご | 6  |    すいか | 15 すいか | 7  |    かき | 3 かき | 3 | みかん | 4 | すいか | 8 | りんご | 1 | というようにしたいです。どなたか教えてください。

  • エクセルでカウントした数を特定のセルに入力したい

    エクセルの関数について質問させてください。 A列  B列   C列 8/9       リンゴ 8/10      ミカン 8/11      リンゴ 8/12      ブドウ 8/13      ミカン 8/14      リンゴ 8/15      ブドウ 上記のような表で、C列でカウントしたリンゴの数を 前日の日付の行の、B列に入力したいのです。 ※今が8/10だとすると、リンゴの数「3」を  8/9の行のB列の欄に入力したい。 COUNTやCOUNTIFSで色々試してみたのですが、 どうしてもうまくいきません。 どうぞ宜しくお願いします。

  • EXEL2000 複数条件で集計を求める関数式

    検索範囲のA列における検索条件が[A5001]セルと同じ値、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計は =SUMPRODUCT((A1:A5000=A5001)*(B1:B5000=B5001)*C1:C5001) では、検索範囲A列が検索条件が[A5001]セルと同じ値の文字列を含むもの、B列が[B5001]セルと同じ値であるもののC列[C1:C5000]の合計をする場合に (たとえば、リストの A列データの値は、青森リンゴ、長野リンゴ、和歌山ミカン等、 B列データの値は、大、中、小等、 C列データの値は、その売上高、 検索条件[A5001]セルの値が[リンゴ]、 [検索条件B5001]セルの値が[大]である場合に、 リンゴという文字列が含まれており且つ大であるものの売上合計金額を求める) =SUMPRODUCT((A1:A5000="*"&A5001&"*")*(B1:B5000=B5001)*C1:C5001) を試しましたがだめでした。 これとは別に、 =SUMPRODUCT(COUNTIF(A1:A5000,"*"&A5001&"*")/COUNTIF(A1:A5000,"*"&A5001&"*"))*(B1:B5000=B5001)*C1:C5001) も試しましたがだめでした(数日前にこちらで教えていただきまして、行数が10行程度の仮のリストで試しましたらうまくいきましたが、実際のリスト(5000行以上)では#VALUE!が返ります。リストは「値のみ貼付」で得られたデータのみが入っています) このリストで、5001行以降に検索条件が多数並んでいます。 EXEL2000で可能な関数式を教えて下さい。よろしくお願いします。

  • エクセルの関数で教えてください。

    色々調べて重複しない関数は分かったのですが、 例: SUMPRODUCT((A1:A10="○○")/COUNTIFS(A1:A$10,A1:A$10&"",C1:C101,C31:C10&"")) この条件にさらに下記内容を追加してカウントしたいです。 B列が0と未入力以外 どうか助けて下さい!

専門家に質問してみよう