- ベストアンサー
EXCEL-同じ組み合わせになった回数
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
C-J: =SUMPRODUCT((B2:K2=B6:K6)*(B2:K2<>"H")) 以下同文のカンジで。 言わずもがなですが式中の「H」は全角半角を区別しますので、実際にあなたがセルに記入している内容で数式を作成してください。
その他の回答 (3)
- KURUMITO
- ベストアンサー率42% (1835/4283)
自動的に表示させるということは組み合わせも含めて表示したいとのことでしょう。 簡単な関数を使って処理するには次のようにするのがよいでしょう。データ数が多くなれば複雑な関数を使った場合には計算に負担がかかります。 お示しの表でA2セルにはC,A3セルにはD,A4セルにはE,A6セルにはJ,A7セルにはK,A8セルにはLのデータがあり右横の列にそれぞれのデータが有るのですがB列は空の行にしてC列からL列までにデータが入力されているとします。 そこで勤務者の組み合わせをA10セルからA18にかけて、また、それらの組み合わせにおけるCからL列での組み合わせを表示させることにします。そのためにはA10セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>9,"",INDEX($A:$L,ROUNDUP(ROW(A1)/3,0)+1,COLUMN(A1))&"-"&INDEX($A:$L,MOD(ROW(A1)-1,3)+6,COLUMN(A1))) つぎにC10セルには次の式を入力して入力してL10セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>9,"",INDEX($A:$L,ROUNDUP(ROW(A1)/3,0)+1,COLUMN(C1))&"-"&INDEX($A:$L,MOD(ROW(A1)-1,3)+6,COLUMN(C1))) 次にお求めの各組合せにおける同じ組み合わせになった回数をB列に表示させるとしてB10セルには次の式を入力して下方にドラッグコピーします。 =IF(A10="","",COUNTIF(C10:L10,"A-A")+COUNTIF(C10:L10,"B-B")) これでA10セルからB18セルには勤務者の組み合わせと同じ組み合わせになった回数が自動的に表示されます。 C10セルからL18セルには作業用のデータが表示されて目障りでしたらその範囲を選択して文字の色を白色にするなどの操作をすればよいでしょう。
お礼
全て自動で表示され並び替えたときの手間がなく大変便利で助かりました。 しかし、うちのPCでは問題なかったのですが会社のPCでは重くなってしまいました。 なにぶん低スペックPCなので… 組み合わせが自動で表示されるのは大変便利なので助かりました。 ありがとうございました。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.1です。え~と、No.2さんのおっしゃるとおりで、No.1の式中の「-(b1:k1="H")*(b5:k5="H")」という部分は、「*(b1:k1<>"H")」と書き換えることができます。このほうが短くて良いですね。したがってNo.1の式は、下のとおり書いても同じ結果となります。SUMPRODUCT関数のほうが普通の発想と思いますので、No.1、3のいずれも、ベストアンサーは辞退します。 =sum(index((b1:k1=b5:k5)*(b1:k1<>"H"),))
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
例えばCとJの組み合わせについて。CのシフトがB1:K1のセル範囲に、JがB5:K5に記録されているとします。C-Jの回数を表示したいセルに次の式を入力します。 =sum(index((b1:k1=b5:k5)-(b1:k1="H")*(b5:k5="H"),))
お礼
ご回答ありがとうございます。 上手く行きましたありがとうございました。
お礼
簡潔でわかりやすく大変助かりました。 ありがとうございました。