• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAか関数 「 2と3の組合せ 」 の行が、いくつあるか?)

VBAか関数で「2と3の組合せ」の行数を算出する方法

このQ&Aのポイント
  • VBAか関数で「2と3の組合せ」の行数を算出する方法について教えてください。
  • 質問の例では、答えは3行となりますが、存在しない場合は0行になります。
  • 他にも「1と3の組合せ」や「*と*の組合せ」などの行数も算出できるので、教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

#4です。もう一案 f2セルはないも入力しない f3セルに =AND(ISNUMBER(MATCH({2;3},C7:E7,0))) 答えは =DCOUNT(C6:E28,,F2:F3) わかりやすい方 =DCOUNT(C6:E28,,G2:I8) Criteriaは添付図参照

oshietecho-dai
質問者

お礼

早速のご回答、ご丁寧に、誠に有難うございました。 先のご回答は、1回で算出できるのですね!

その他の回答 (6)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.7

質問の意図は、いくつあるか、じゃなくて、フィルタしても8行目や11行目が出るから何とか該当のみの表示にしたい、のでは?。 同じ数値が重なる事はありえますか?、3と2と2とか。 030201や030111にして考えると1セルで判定になりまだまだ策はありそうですが。

oshietecho-dai
質問者

お礼

ご回答、誠に有難うございました。

oshietecho-dai
質問者

補足

ご回答、有難うございます。 >質問の意図は、いくつあるか、じゃなくて、 >フィルタしても8行目や11行目が出るから何とか該当のみの表示にしたい、のでは?。 いいえ、そうではございません。 前進的な考えを有難うございます。。 >同じ数値が重なる事はありえますか?、3と2と2とか。 ありえます。が、ほんの、たまにです。 この場合は、「 2 と 3 の組合せ 」は1個とさせて頂きますが、 やむおえなければ、2個でも結構でございます。

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.5

VBAでユーザ関数を作成して見ました。 【基本的使用例】 =組み合わせ件数(C7:E13,2,3) 【VBA】 Function 組み合わせ件数(範囲 As Range, ParamArray 検索値())  Dim マッチセル As Range  Dim マッチ集合行 As Range  Dim セル As Range  組み合わせ件数 = 0  If UBound(検索値) < 0 Then Exit Function  For I = 0 To UBound(検索値)    For Each セル In 範囲      If セル = 検索値(I) Then        If マッチセル Is Nothing Then Set マッチセル = セル        Set マッチセル = Union(マッチセル, セル)      End If    Next    If マッチセル Is Nothing Then Exit Function    If I = 0 Then Set マッチ集合行 = マッチセル.EntireRow    Set マッチ集合行 = Intersect(マッチ集合行.EntireRow, マッチセル.EntireRow)    Set マッチセル = Nothing  Next I  組み合わせ件数 = Intersect(マッチ集合行, Columns(1)).Count End Function 【蛇足】 関数は汎用的に作成していますので… ・検索値を任意の個数で指定できます。  =組み合わせ件数(C7:E13,1)  =組み合わせ件数(C7:E13,1,2,3) ・検索範囲を任意な範囲で指定できます。  =組み合わせ件数(C7:Z13,1,2,3,4)  =組み合わせ件数((C7:C14,D7:D14),1) 良ければ試してみて下さい。

oshietecho-dai
質問者

お礼

早速のご回答、ご詳細、誠に有難うございました。 1,2,3,4 にも対応できるのですね! 自分には高レベルなコードかもしれませんが、 がんばって、使用させて頂きます。

回答No.4

もうちょっと何とかなんないかななんて思ったけど。。。 =SUM((MMULT((C7:E26=2)*1,{1;1;1})>=1)*(MMULT((C7:E26=3)*1,{1;1;1})>=1)) 2 2 2 2 3 2 3 3 3 3 2 3 上記で当てはまるのは 2 3 2、3 2 3で2つですよね

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。

oshietecho-dai
質問者

補足

ご回答、有難うございます。 ご返事遅くなり、すみません。 >上記で当てはまるのは 2 3 2、3 2 3で2つですよね はいそうです。

  • shinkami
  • ベストアンサー率43% (179/411)
回答No.3

セルG7の式 =IF(COUNTIF($C7:$E7,G$4+10*G$5)+COUNTIF($C7:$E7,10*G$4+G$5)>0,1,0) このセルを下へ、右へコピーします 答えセルG6の式 =SUM(G7:G12)…G12は仮です この式を右へコピーします 任意の1桁の数値をセルG4とセルG5の以右へ入力します

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

#1です。 前の回答で、別の組合せの時にZ1とZ2を使用しましたが、それだとSUMの結果が変になります。 SUM(Z:Z)からZ1とZ2を引く =SUM(Z:Z)-Z1-Z2 か、Z1とZ2を別の列に設定すればそのまま使用できます。

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。 ご丁寧に、有難うございました。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

作業列を設けて、(例えばZ列を作業列としたとき、)Z7セルに =COUNTIF(INDIRECT("C"&ROW()&":E"&ROW()),3)*COUNTIF(INDIRECT("C"&ROW()&":E"&ROW()),2) と入力し、下にコピーしていきます。 合計行数を求めたいセルに、 =SUM(Z:Z) と入力すると、行数が出ます。 別の組合せでも出したいときは、 1と3出はなく、 Z1セルとZ2セルに1、3を入力し、 =COUNTIF(INDIRECT("C"&ROW()&":E"&ROW()),Z1)*COUNTIF(INDIRECT("C"&ROW()&":E"&ROW()),Z2) などとすると、別の組合せにも対応できます。

oshietecho-dai
質問者

お礼

早速のご回答、誠に有難うございました。

関連するQ&A