Excelで複数の数字を含む行の数を求める方法

このQ&Aのポイント
  • 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を書き換えていく必要がありますが、この方法を使用することで簡単に処理することができます。
回答を見る
  • ベストアンサー

Excelについての質問です。

図のように整数が並んだ表があります。(実際は数千) その中から、例えば6.9、15が同時に含まれる行の数を求めたいのです。 この図では、答えは「2」です。 できれば、“数式ひとつで求める方法をお願いします。” という質問に対して、以下のような回答を得ました。 =SUMPRODUCT((MMULT(COUNTIF(OFFSET(A1:J1,ROW(1:n)-1,),{6,9,15}),1^ROW(1:m))=m)*1) ★n:行数 ★m:含まれる数字の数(6,9,15の3つ この回答は使わせていただくのですが、 さらに進化させ、3つの数字をあらかじめ書き出しておいて、 その数字を参照しながらオートフィルで処理したいのです。 上記の式では、6、9、15を書き換えていかなければなりません。 どなたか、お知恵を拝借できないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

その式でほとんどそのまま =SUMPRODUCT((MMULT(COUNTIF(OFFSET($A$1:$J$1,ROW($1:$5)-1,),B6:D6),1^ROW($1:$3))=3)*1) とかでいいですよ。 mだのnだのも元の式の説明の通りです。

onthewaytocadiz
質問者

お礼

ありがとうございます。 できました。 すっきりしました。

その他の回答 (2)

回答No.3

E6セルに =SUMPRODUCT((MMULT(COUNTIF(B6:D6,$A$1:$J$3),TRANSPOSE(COLUMN($A$1:$J$1)^0))=3)*1) [Ctrl]+[Shift] +[Enter] で確定、配列数式です({}で囲まれる) 似て非なる、、、(-_-)zzz

onthewaytocadiz
質問者

お礼

できました! ありがとうございます。 配列数式? どこかで使ったことがあるような気がしますが、 難しい。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 実際のデータは何千行?もあるというコトなので、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

onthewaytocadiz
質問者

お礼

ありがとうございます。いろいろ書いていただいたのですが、 私のスキルでは理解不能した。 申し訳ありません。

関連するQ&A

  • エクセル、毎回2づつ増えいくデーターの式?

    よろしくお願いいたします。エクセルで別表からA2、B2に ともに145行までデーターが入っていて、C1に各当するものをA列から引っ張ってくる式が下の数式です。 【=IF(ROWS($2:2)>COUNTIF($A:$A,$C$1),"",INDEX($B:$B,SUMPRODUCT(ROW($A$2:$A$145)*($A$2:$A$145=$C$1)*(COUNTIF(OFFSET($A$2,,,ROW($A$2:$A$145)-ROW($A$2)+1),$C$1)=ROWS($2:2))))) 】 行数が一定で、中だけ数値が変化する分にはいいんですが、毎回2行分データーが増えていきますので、毎回A145の式を147に変えて、手数がかかって、なんかいい式がないもんかとのお伺いなんです。 よろしくお願いいたします。

  • 1つの数式で結果を出すには

    A列に整数と小数のある数値がランダムに各セルに入っています。 この数字を下記の数式を他のセルに組んで、1や2や3がA列に入っている数値を確認して数式を組んでいる列のセルに1が表示する様にしています。 =SUMPRODUCT(COUNTIF(A3:A3,"1")) =SUMPRODUCT(COUNTIF(A3:A3,"2")) =SUMPRODUCT(COUNTIF(A3:A3,"3")) この数式を改良して、1つの式で、1や2や3が存在していたら、式を組んだセルに1が表示出来るか、下記の様に数式を組みましたが、結果が得られませんでした。 =SUMPRODUCT(COUNTIF(A3:A3,"1,2,3")) ご教授頂けたら幸いです。 宜しくお願いします。

  • Excelの関数がわかりません

    ExcelでSubtotalによって抽出されたデータを、Sumproduct関数で種類の数をカウントする方法がわかりません。 それぞれ、=subtotal(3,範囲) =SUMPRODUCT(1/COUNTIF(範囲,範囲)) までは、出来上がっておりますが、上記を組み合わせると数式エラーが発生します。 どのように組み合わせればよいか、または、全く違う方法があるのか是非お教えいただきたいと思います。

  • エクセル数式・等間隔ごとの範囲にしたい(再)

    数日前にココに質問させていただいて、回答をもらえたのですが 私の説明不足で、よい結果が得られなかったので、もう一度質問させていただきます countif関数で範囲を等間隔にしたいです、と質問したところ =SUMPRODUCT((A1:A1000="あ")*(MOD(ROW(A1:A1000),10)=1)) との回答をいただきました 残念ながら、都合でその数式が書かれているセルが 範囲の中に入ってしまっていて、循環になってしまいます 範囲を等間隔に出来れば循環にならないと思い質問させていただいたのですが そこを書かなかったので、望みの数式になりませんでした 循環にならない方法で何とかなりませんでしょうか?

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • EXCELのオートフィル抽出結果に連続数字

    EXCELでオートフィル抽出結果に連続数字を打ちたく思い、 抽出結果を出した上に、B6セルに=IF(A6="○",COUNTIF($A$6:A6,"○"),"")と数式を入れましたが、 この方法だと1からしか数字が振れないのですが、中途半端な数字(例えば450)から連続数字を入れたい場合は 数式をどのようにしたら宜しいでしょうか。 ご回答お願い致します。

  • エクセルのVBA  データの行数取得

    VBAの勉強をしています。参考書に下記のようなソースが載っていたのですが意味がわかりません。 データ行数を取得 lngRows = .Offset(65536 - .Row).End(xlUp).Row - .Row + 1 -.Rowとはどういう意味でしょうか? ヘルプ等で調べるとRow(2)というようにRowの後に数字が入っていて2行目を参照してる ということがわかるのですが単純にRowと描かれている場合はどこを参照している のでしょうか?教えていただけないでしょうか?

  • エクセル/COUNTIF関数で空白以外のセル数取得は?

    エクセル2000のワークシート関数の質問です。 B1~B13には数式が入っており、計算の結果として何らかの文字や数字が表示されたセルと、何も表示されない、つまり=""のセルがあります。 このセル範囲の何かが表示されたセルの個数を取得する関数を探しています。 =COUNTIF(B1:B13,"<>""") としてみましたが全セル数の13が返りました。 やむをえず =ROWS(B1:B13)-COUNTBLANK(B1:B13) とか =SUMPRODUCT((LEN(B1:B13)>0)*1) とか =SUMPRODUCT((B1:B13<>"")*1) として取得しましたが、本来のCOUNTIFでは取得できないのでしょうか?

  • Excel 【表に無い整数だけをリストアップするには】

    A列に1から10000までの整数が入っていますが、 抜けている数や重複している数があります。 下記のような感じです。 1 1 3 4 4 4 6 6 抜けている数(上記の場合 2 と 5)だけを抜き出して一覧にしたいです。 表示されている数の場合はcountifとオートフィルで抜き出せますが、 この場合は方法がわかりません。

  • Excelで数式中に他セルの値

    Excelで数式について、他のセルに書いてある数字を文字列として代入したいのですが、 どうすればよいでしょうか。 具体的には 1  A1に10と入っており 2-1 B2に=COUNTIF(OFFSET(A1:D10, 0, 1), "=【A1】") 2-2 SUMIF(~~~, "=【A1】", ~~~) のような形で、A1の値に応じてCOUNTIFとSUMIFの条件分岐をしたいのです。 よろしくお願いします。

専門家に質問してみよう