- ベストアンサー
Excelで複数の数字を含む行の数を求める方法
- Excelで複数の数字を含む行の数を求める方法について質問があります。具体的には、表の中から6.9と15が同時に含まれる行の数を求めたいです。そのためには、特定の数式を使用して行うことができます。
- 回答としては、以下の数式を使用することで、6.9と15の両方を含む行の数を求めることができます。 =SUMPRODUCT((MMULT(COUNTIF(OFFSET(A1:J1,ROW(1:n)-1,),{6,9,15}),1^ROW(1:m))=m)*1) ただし、nは行数、mは含まれる数字の数(6.9と15の2つ)です。
- さらに便利な方法として、あらかじめ3つの数字を書き出しておき、その数字を参照しながらオートフィルで処理する方法があります。上記の数式では、6, 9, 15を書き換えていく必要がありますが、この方法を使用することで簡単に処理することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その式でほとんどそのまま =SUMPRODUCT((MMULT(COUNTIF(OFFSET($A$1:$J$1,ROW($1:$5)-1,),B6:D6),1^ROW($1:$3))=3)*1) とかでいいですよ。 mだのnだのも元の式の説明の通りです。
その他の回答 (2)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
E6セルに =SUMPRODUCT((MMULT(COUNTIF(B6:D6,$A$1:$J$3),TRANSPOSE(COLUMN($A$1:$J$1)^0))=3)*1) [Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる) 似て非なる、、、(-_-)zzz
お礼
できました! ありがとうございます。 配列数式? どこかで使ったことがあるような気がしますが、 難しい。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 実際のデータは何千行?もあるというコトなので、VBAでの一例です。 Sheet1の1行目からあるデータをSheet2に表示するようにしてみました。 Sheet2の配列は↓の画像のようになっているとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, j As Long Dim ws As Worksheet Dim Area As Variant Set ws = Worksheets(2) ws.Columns(4).ClearContents Application.ScreenUpdating = False For j = 1 To ws.Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Set Area = Range(Cells(i, 1), Cells(i, 10)) If WorksheetFunction.CountIf(Area, ws.Cells(j, 1)) And _ WorksheetFunction.CountIf(Area, ws.Cells(j, 2)) And _ WorksheetFunction.CountIf(Area, ws.Cells(j, 3)) Then ws.Cells(j, 4) = ws.Cells(j, 4) + 1 End If Next i Next j Application.ScreenUpdating = True End Sub 'この行まで ※ データが変わるたびにマクロを実行してみてください。 こんな感じではどうでしょうか?m(_ _)m
お礼
ありがとうございます。いろいろ書いていただいたのですが、 私のスキルでは理解不能した。 申し訳ありません。
お礼
ありがとうございます。 できました。 すっきりしました。