ここでの最初の質問なので、何か問題があっても私を殺さないでください。このサイトで多くの解決策を見つけましたが、今回は見つかりませんでした。残念ながら、まだ画像を投稿できません。簡単ではありませんが、やってみます。
ポイントへ:
私のデータには次のヘッダーがあります。
Decision_Id 相手 1 相手 2 相手 3 求婚者 1 求職者 2 求婚者 3 求婚者 4
Decision_id は一意の整数識別子です。残りは文字列です。
各行は、特定の司法判断を表します。各決定には、最大 3 人の反対者 (防御側) と最大 4 人の求婚者 (攻撃側) を含めることができます。特定の当事者は、ある決定では求婚者になり、別の決定では反対者になることができます。
私が取得したいもの:
行ヘッダーと列ヘッダーの両方が、テーブル内で遭遇するすべての異なるパーティであるクロス テーブル。(それで問題ありません。完了です。)各セルが、特定の対戦相手(行ヘッダーで定義)が特定の求婚者(列ヘッダー)によって攻撃された個別の決定の数を示す場所 => すべての対角セルはゼロに等しい(パーティーはできません攻撃自体)、テーブルは対称ではありません。
私が試してみました
最初のセルに適用してから展開します。
=COUNTIFS("すべての対戦相手の固定範囲 :$B$2:$D$6","希望する対戦相手の値 : $A2", "すべての求婚者の固定範囲 :$E$2:$H$6", "希望する求婚者の値: B$1")
エラーが発生しました。基準範囲は同じサイズでなければならないことがわかりました。OK、ダミーの空の列を作成しました => エラーはありませんが、結果は明らかに過小評価されています。相手と求婚者の「数」が同じでないと勝負はないと思います。詳細: 各行について、相手 1 と suitor1 を対応する値に対して Excel テストし、次に相手 2 と suitor2、次に相手 3 と suitor3 をテストします。これは、範囲が同じサイズでなければならない理由を実際に説明しています。
だから、私が必要とするもの
行ごとに、希望する相手の値に向かってすべての相手をテストし、希望する求婚者の値に向かってすべての求婚者をテストします。少なくとも 1 人の対戦相手と 1 人の求婚者が対応する場合、一致させ、この決定をカウントします (対戦相手 1 と求婚者 3 が必要な値を持っていたとしても)。
備考
私はすでに仕事をする VBA コードを作成しましたが、遅すぎます (テーブル全体で約 5 時間)。この種のさまざまなテーブルに対して同じことをしたり、これを変更したりすることを期待しています。だから私は「純粋なエクセル」、高速なソリューションに興味があります。
どうもありがとうございました!