特定の文字列が別の列にある場合、列をカウントする

特定の文字列が別の列にある場合、列をカウントする

ランクの列があり、そのタグ (列 1) が出力テーブルで指定されたタグと同じである限り、各ランク (1 ~ 5) の数を決定する必要があります。これは、各ランクのパーセンテージ合計を示す別のシートの別のテーブルに配置されます。下の図から、パーセンテージを手動で入力しましたが、数式を使用してこれを自動的に実行したいと考えています。ご助力いただければ幸いです。よろしくお願いします。

出力テーブル:

出力テーブル

入力列:

入力列

答え1

これはピボットテーブルについて学ぶのに最適な時期です。データに、列を説明する見出し (例: 「チーム」や「順位」) を付けます。次に、データと見出しを選択し、[挿入] > [ピボットテーブル] に移動します。

次に、「チーム」を行領域にドラッグし、「ランク」を列領域にドラッグして、「チーム」を値領域にドラッグします (「チーム」は数値ではないため、デフォルトでは各チームが各ランクを獲得した回数がカウントされますが、これは必要なことです。ランクを使用することを選択した場合は、デフォルトで合計されますが、これは望ましくないため、「合計」から「カウント」に切り替える必要があります)。

これは、各チームが 1 位、2 位、3 位などになった回数をカウントするだけです。結果の 1 つを右クリックし、[値の表示形式] > [行の %] を選択します。総計をオフにすることもできますが、これは自分で考え出すための演習として残しておきます (ヒント: [ピボットテーブル] > [デザイン] リボン)。これが役に立ち、数式を使わないピボットテーブルの素晴らしい魔法を使い始めるきっかけになれば幸いです。

答え2

例の行と列については、入力シートと出力シートがそれぞれ「入力」と「出力」と呼ばれていると仮定します。

  • 「出力」シートで、から までB2:F2のセルに入力し、とにとを入力します。これらを「入力」シートから自動的に生成する必要がある場合は、その旨をお知らせください。15AB1CD2A3A4
  • B3「出力」シートのセルに次のように入力します。

    =COUNTIFS(Input!$A:$A, Output!$A3, Input!$B:$B, Output!B$2) / COUNTIFS(Input!$A:$A, Output!$A3)
    
  • 右の列Fから行4までドラッグ/フィルし、

  • パーセントとしてフォーマットします。

説明:

  • 分母(の右側の部分/)は

    COUNTIFS(Input!$A:$A, Output!$A3)
    

    これは、出力シートの現在の行の列 A の「タグ」が列 A に含まれている入力シートの行数をカウントします。  Output!$A3 = の場合AB1、これは 6 です。

  • 分子(の左側の部分/)は

    COUNTIFS(Input!$A:$A, Output!$A3, Input!$B:$B, Output!B$2)
    

    これは上記の改良版で、出力シートの現在の行の列 A の「タグ」が列 A に含まれ、出力シートの現在の列の行 2 の番号が列 B に含まれる入力シートの行数をカウントします。  Output!$A3 = AB1および Output!B$2 = の場合1、これは 3 です。

  • したがって、割り算の結果は 3/6 = 0.5 = 50% になります。

関連情報