
No.2ベストアンサー
- 回答日時:
No.1です。
(1)関数の中の&と=の意味
(2)なぜ1を掛けているのでしょうか。
(3)試しに1を掛けないと0になります。なぜ0に1を掛けると1以上の整数になるのでしょうか。
という追加のご質問をいただきましたので、説明します。
添付画像をご覧ください。
C1に「A&B」という見出しをつけ、C2に
=A2&B2
を記述し、下方向へコピーしてあります。
つまり(1)のご質問の「&の意味」はA列とB列を結合して新しいデータを生成するということです。作業列をC列とすればこのようになるものを数式の中で実現しようてしたものです。
次に、C列で生成した結合データC2~C9を行と列を入替えてD1~K1に配置してあります。
さらに、D2に
=$C2=D$1
を記述し、下方向、右方向へコピーしてあります。
その上で、D10に
=SUMPRODUCT(D2:D9)
を記述し、右方向へコピーし、
また、D11に
=SUMPRODUCT((D2:D9)*1)
を記述し、右方向へコピーしてあります。
さて、ここで
=SUMPRODUCT((D2:D9)*1)・・・・・・①
の数式のD2:D9の部分ですが、これは「C2:C9のデータとD1とが『等しいかどうか』」を各行ごとに「TRUE」「FALSE」で表したものです。
ではC2:C9のデータとは何かというとA2&B2、A3&B3、A4&B4・・・・・・つまり、$A$2:$A$9&$B$2:$B$9と同じです。
またD1はC2と同じですので、C2つまりA2&B2と同じです。
従って①の数式は「C2:C9のデータとC2とが『等しいかどうか』」を変形したものであり、
=SUMPRODUCT(($A$2:$A$9&$B$2:$B$9=A2&B2)*1)
と同じ意味だと判ります。
つまり(1)のご質問の「=の意味」は上記の『等しいかどうか』を数式として表すためのものです。
ご質問者は
>SUMPRODUCT関数の仕様は理解している
とおっしゃっています。
添付画像のD10に記述した、「*1」のない数式
=SUMPRODUCT(D2:D9)
で結果が「0」になってしまうのは「TRUE」「FALSE」を集計しようとしているためです。数値でないものを集計しても数値としての集計結果は得られません。
そこで、「*1」を用いることにより数値にしているのです。「TRUE」「FALSE」を加減乗除計算式に用いるとTRUEは1、FALSEは0、というのは「EXCELの約束事」と理解しておいてください。
※EXCELの指南書的なものではあまり見かけませんが、前回回答は=1/SUMPRODUCT(($A$2:$A$9&$B$2:$B$9=A2&B2)+0)や=1/SUMPRODUCT(($A$2:$A$9&$B$2:$B$9=A2&B2)/1)という数式にしても結果は同じだということになります。
これが、(2)(3)のご質問の解説になります。
A列とB列を結合して、「〇〇会社の□□」という、新しいデータを生成し、該当行と同じデータが、生成された全データ中に幾つ存在するのかをSUMPRODUCT関数を使って数えます。その逆数を計算して集計したときに1になるようにしているという訳です。

御親切に、詳しく説明してくださってありがとうございます。
=の意味、理解しました。2つのセルが同じならTRUE、違っていればFALSEを返すのですね。
会社と個人を合体させたもの(会社&個人)が、全体の中でいくつあるか(TRUEがいくつなのか)を調べてたのですね。
SUMPRODUCTが返す結果で、例えば内部的にTRUE、TRUE、TRUEという結果だとして、そこに1を掛けることで数字の3になるのですね。
すっきりしました。
ありがとうございます。
No.1
- 回答日時:
方法はいろいろあると思いますが、その一つとして以下のような方法はいかがでしょう
C1に「社員数」という見出しをつけC2に以下の数式を記述します。
=1/SUMPRODUCT(($A$2:$A$9&$B$2:$B$9=A2&B2)*1)
これをオートフィル等で下方向へコピーします。
添付画像①のような表ができます。
これを作成したうえで、ピボットテーブルを作成します。
会社を行へ、社員数を∑値へ各々プロットすると添付画像➁のような社員数の表ができます。

回答ありがとうございます。
お教えくださったとおりにしたら、希望どおりのものができました。
なるほど、重複をすべて足すと1になるように仕掛けておくのですね。
とりあえずはこれで解決なのですが、追加で質問させてください。
私のスキル不足のため、何故、お教えくださった式でこの動作になるのかが理解できません。
■以下は理解しています。
・SUMPRODUCT関数の仕様
・「$A$2:$A$9」は、A列2行からA列9行までを絶対値で選択の意味
・A2はその行を相対的に参照。下にコピーすると、参照先がA3、A4、A5と変化する。
■お聞きしたいこと
・関数の中の&と=の意味
・なぜ1を掛けているのでしょうか。
・試しに1を掛けないと0になります。なぜ0に1を掛けると1以上の整数になるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) ピボットテーブルへの集計フィールド挿入 1 2023/02/26 11:33
- Excel(エクセル) ピボットテーブル集計表について。ピボットテーブルで集計を行うとき、内訳集計ではなく、通常集計表にする 2 2023/08/10 07:16
- Excel(エクセル) Excel ピボットテーブルの表示方法を変更したいのですが、、、(合計値を下部に) 3 2023/06/18 21:10
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) ピボットテーブルの参照式はオートフィル出来ない? 2 2023/03/03 15:57
- Excel(エクセル) 【Excelの集計について質問です。】 7 2022/12/03 16:51
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- PHP MySql PHP 2つのテーブルをJOINで結合 user_idで抽出 1 2023/01/03 14:04
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
エクセル
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
【マクロ】アクティブセルの時...
-
【関数】同じ関数なのに、エラ...
-
【マクロ】A列にある、日付(本...
-
エクセルの循環参照、?
-
【マクロ】3行に上から下に並...
-
【マクロ】WEBシステムから保存...
-
【マクロ】EXCELで読込したCSV...
-
iPhoneのExcelアプリで、別のシ...
-
【エクセル】期限アラートについて
-
【条件付き書式】シートの中で...
-
Excelファイルを開くと私だけVA...
-
Excelの新しい空白のブックを開...
-
派遣会社とかハローワークとか...
-
マクロ・VBAで、当該ファイルの...
-
VBA チェックボックスをオーバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報