ここから本文です

エクセルの質問です。 国数を出す関数を調べています。条件としては、B列に数字...

b_m********さん

2018/5/1709:40:56

エクセルの質問です。

国数を出す関数を調べています。条件としては、B列に数字が入っている場合のみその隣のセルを集計し、さらに国が重複する場合はそれを1としてカウントする・・というものです。

画像では、日本、イギリス、フランスのみなので3か国というようにしたいです。

COUNTIFS(B1:B10, ">0",A1:A10,"*")のようにすれば、「B列に数字が入っている場合かつその隣のA列に文字が入っていればカウント」まではできるのですが、それから国の重複を1としてカウントするところが、どの関数を組み合わせればよいのか分かりません。

どうかよろしくお願いいたします。

B10,COUNTIFS,関数,A10,国数,A10 NA,ISNUMBER

閲覧数:
44
回答数:
3
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

chi********さん

2018/5/1710:05:57

数が少ないなら数式でもいいですが たくさんある場合 処理が猛烈
に重くなります。もうひとつは範囲をきっちり取らないと計算に追
加条件を足す必要があり 処理することが増えます。

もし作業列を使って計算していいのなら A列を昇順か降順でソート
してから

B1に「=B2+(A1<>A2)」と入れて データ最終行までコピー

で B1セルに答えが返るかと思います。

個人的にはデータベースクエリやピボットテーブルで集計すること
をお勧めします。

  • chi********さん

    2018/5/1710:08:54

    同じく 昇順か降順にソートしているのが前提ですが

    =SUMPRODUCT(N(A1:A100<>A2:A101))

    のような形なら それほど重くなることはないと思い
    ます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

mac********さん

2018/5/1711:26:51

例示のデータのようにA1セルから10行目までの範囲に入力されているなら、以下の数式でB列に数字があるデータのA列の国名の重複のないカウントを行うことができます。

配列数式ですので数式入力後、Ctrl+Shift+Enterで確定してください。

=COUNT(1/(MATCH(IF(ISNUMBER(B1:B10),A1:A10,NA()),IF(ISNUMBER(B1:B10),A1:A10,NA()),0)=ROW(1:10)))

mit********さん

2018/5/1710:42:17

簡単で分かりやすい方法は作業列を作って対応することでしょう。
お示しの表が1行目は項目名で2行目から下方にデータがあるとします。

H2セルには次の式を入力して下方にドラッグコピーします。

=IF(COUNTIF(A$2:A2,A2)=1,MAX(H$1:H1)+1,"")

お求めの表をD列およびE列の作るとしてD2セルには次の式を入力してE2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(ROW(A1)>MAX($H:$H),"",IF(COLUMN(A1)=1,INDEX($A:$A,MATCH(ROW(A1),$H:$H,0)),SUMIF($A:$A,$A2,$B:$B)))

なお、作業列が目障りでしたらその列を選んで右クリックし「非表示」を選択すればよいでしょう。

国の数は =MAX(H:H)

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる