エクセル行数カウント方法とは?

このQ&Aのポイント
  • エクセルの行数カウントについて質問です。A列に数千行の文字が入っており、特定のパターンでデータが続いています。8桁の数字のみをカウントしたいが、現在は手動で行数を数えています。効率的な行数カウントの方法はありますか?
  • エクセルの行数カウントについての質問です。A列には数千行のデータが入っており、特定のパターンでデータが続いています。8桁の数字のみをカウントしたいが、現在は手動で行数を数えています。より効率的な行数カウントの方法を教えてください。
  • エクセルの行数カウントに関する質問です。A列には特定のパターンでデータが続いており、8桁の数字のみをカウントしたいです。現在は手動で行数を数えていますが、より効率的な方法を知りたいです。
回答を見る
  • ベストアンサー

エクセルの行数カウントについて質問です。

エクセルの行数カウントについて質問です。 A列に数千行文字が入っています。 a1には、Z001書いてあります。 A2以降には、Z002と記入してあるセルがあるまで8桁の文字列が記入されています。 (Z001~Z002までは毎回行数が変わります。) Z002の次のセルには、またZ001と書いてあるセルがあり、同じようにZ002があるセルまでデータが入ってます。上記のような内容が数千行続きます。(Z001~Z002は毎回違います。) 8桁の数字のみを関数でカウントしたのですが、全部の数字の合計になってしまい、 現在は、マウスでZ001からZ002までを選択して、右下に書いてある行数を書き写しています。 このようなデータの行数をカウントするのによい手段はないでしょうか? 説明があまりうまくないかもしれませんが、よろしくお願いします。 z001→このような感じです。 1112g678 z002 z001 1453t67a 22222a38 Z002 z001 12578978 z002

  • puxu
  • お礼率53% (15/28)

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

  • ベストアンサー
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

B1に1と入力して B2こ =IF(A2="z001",1,B1+1) オートフィルで下にコピー すると図のような感じなるのですが これでよいのでしょうか。 違っていたら無視して下さい。

puxu
質問者

お礼

お礼が送れて大変もうしわけありませんでした。 IFはよく使っているのですが、教えて頂いた方法はまったく思いもつきませんでした。 勉強不足を痛感しています。 いままでの作業に比べれば非常に楽になると思います。 C列・D列などを工夫すれば、素敵になる感じがします。 大変ありがとうございました。

その他の回答 (10)

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

参考) VBAってどんな感じかのサンプルです。 Public Sub sample() 'セル内容を1つずつ編集します 'A1を基準に、横1列×縦20列のセルの操作を繰り返す Dim W As String Sheets(1).Select Range("A1").Select For X = 1 To 1 For Y = 1 To 20 W = Cells(Y, X) If W = "z001" Or W = "z002" Then ' 区切りのときの処理 Else If IsNumeric(W) = True Then ' セル8ケタ数字であるときの処理 Debug.Print W        ’←VBAのイミディエイトに表示 Else ' セル8ケタ数字でないときの処理 End If End If Next Y Next X MsgBox ("完了") End End Sub これだけの記述で 事例のデータの「12578978」を表示させることができますから、 今回のことをきっかけにVBAを学んでみましょう。

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

いきなりカウント数出すよりは、ほかの列に作業用に情報設定する。 Z001からZ002までのグループ毎に連番つける。 8桁数字であるか判断し、同じグループ内での個数を数える。 こんなことすれば、 1つ目グループには0。2グループ目には0、3グループ目に1つ、イメージではありますがなんとかなるのでは、と思います。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.9

回答No4です。 あとから実はこれにしたかったなど言われておりますので、余計なことかもしれませんが次のようにしてはどうでしょう。 お示しのデータがA2セルから下方に入力されているとします。 B列は作業列としてB2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(AND(A1="",A2=""),"",IF(AND(A1<>"",A2=""),MAX(B$1:B1)+1,IF(OR(ASC(A2)="z001",ASC(A2)="Z001"),MAX(B$1:B1)+1,""))) そこでお求めの表ですがD列にはz001が出てきた回数を上から順に番号を付けて表示し、E列にはz001からz002までがどのセルからどのセルまでかを表示させます。F列にはその間に挟まれたデータの数を表示させます。 D2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(B:B)-1,"",ROW(A1)) E2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(D2="","","A"&MATCH(D2,B:B,0)&"~A"&MATCH(D2+1,B:B,0)-1) F2セルには次の式を入力し下方にオートフィルドラッグします。 =IF(D2="","",MATCH(D2+1,B:B,0)-MATCH(D2,B:B,0)-2) ご質問の答えはF列の数値になりますね。

回答No.8

画像の添付に失敗しましたので 画像のみ UPします。

回答No.7

【エクセルの行数カウントについて】 私が質問を理解してるか不安ですが、、、  画像のように B列に =IF(A2="z001",0,IF(A2="z002",B1,B1+1))で、、   A列がz001の時 0として、Z002以外の時は上のセルに1を足して行き、      z002の時 上のセルと同じ値をセットすれば、      z002のB列にz001の次~z002の前までの個数が入ることになります。   ただし z001、z002は 半角、全角、大文字、小文字の判定をしてませんので    間違いなく その文字列でなければなりません、       なお、B列は A列の行の値が"z002" 以外の時は数値が煩わしいので文字は薄いグレーとし、   条件付き書式で A列の行の値が"z002"の時だけ 太字の黒と下罫線を表示させてます。   A列も、同様な条件付き書式を設定しています。

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

VBAで行えば、数字か判断しながら行数数えながら結果を出せると思います。 A1がZ001か8桁文字か数字かZ002かみたら結果を出して、次はA2、の繰り返しです。。 関数なら区切り値か数字だけかの判定列をB列やC列に作ってやる。 12578978だけ、を関数でどう特定させるか、ですがそこはできてますか。

puxu
質問者

お礼

マクロは記録したものをちまちま張っているぐらいです。 いろいろな方に教えて頂き、ぜんぜん使えていない事にびっくりしています。 お答えいただき大変ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

こういう対象とする行の始まりと終わりの変動するものは、関数では扱いが難しい。 VBA向きの問題だ。 ただし社業列を使うと以外に平凡。 例 質問ではxは”Z001"、yは”Z002"に当たる。両カッコで囲むようなイメージ。 B列B1の式は =COUNTIF($A$1:A1,"x") 下方向に式複写 A列  B列 x 1 a 1 s 1 d 1 f 1 y 1 x 2 d 2 f 2 g 2 x 3 f 3 g 3 h 3 y 3 何処かの列へ(D列とする) D列 1 2 3 ・・・ を作っておく。 E1に =COUNTIF($B$1:$B$100,D1)-2 式を下方向に複写 結果 D列  E列 1 4 2 2 3 3 ・・・ と入れて下方向に式を複写

puxu
質問者

お礼

マクロは自動記録をちまちまとつけるぐらいなので、 関数でこんなにすごい方法を教えてただきびっくりしました。 個別にカウントして、さらに集計までされるなんて!! 本当にありがとうございます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

必ず8文字のデータが対象となっているのであれば次の式でよいでしょう。 データがA1セルからA100セルの間に有るとして =SUMPRODUCT((LEN(A1:A100)=8)*1)

puxu
質問者

お礼

お答え大変ありがとうございます。 私の説明が雑なのですが、Z001とZ002にはさまれた行を、はさまれているデータくくりで 答えがでるかなとおもいました。(わかり辛いですよね・・すみません。) 教えていただいた内容も非常に参考になり、合計などで確かめたりするのに 役に立ちそうです。 本当にありがとうございます。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.3

> 8桁の数字のみを関数でカウントしたのですが、 その関数を提示してみてください。 質問の例では、どんな結果が欲しいのでしょうか?

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

具体的に度の湯王菜集計結果が得たいのかわからないのですが、最初のZ001とZ002の間の行数、2番目のZ001とZ002の間の行数などを順次別セルに表示したいということなら、以下のような数式で表示できます。 =SMALL(IF($A$1:$A$10000="Z002",ROW($A$1:$A$10000),10000),ROW(A1))-SMALL(IF($A$1:$A$10000="Z001",ROW($A$1:$A$10000),10000),ROW(A1))-1 配列数式ですので入力後Ctrl+Shift+Enterで確定して、下方向にオートフィルしてください。

puxu
質問者

お礼

返信送れて大変申し訳ありません。 こんなにすごい式ができるんですね。 私にはすこし難しいですが、なんとか勉強してみます。 大変ありがとうございました。

関連するQ&A

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • エクセル表のカウントの仕方について

    エクセルの表でいいカウントの仕方を教えてください。 まず思い浮かべて頂きたい簡単な表の例を示しておきます。行は20行程度というのを思い浮かべてください。 A列には1~10の数字、B列にはあ~んの五十音の一文字のみが、それぞれ重複ありで記入されているような単純な表です。 そこで、A列が「5」かつB列が「あ」という両条件を満たした行の数を、どこかのセルにカウントして表示したいのですが、私の能力では経験不足でできないで困っています。 どうすればいいのか教えていただきたいのです。 よろしくお願いします。

  • エクセルでカウントしたい(至急お願いします)

    お世話になります。 エクセルのカウントについて教えてください。 A列に1行目から3000行目まである数字が入っています。 所々のセルに「不明」という文字が入ってます。 この「不明」がいくつあるかをカウントしたいのです。 A:3001に「不明」がいくつか表示するようにして、A1~A3000で 「不明」に数字を入れたとき、A:3001の「不明」の合計が変わる ようにしたいのですが、この関数を教えてください。 宜しくお願いします。

  • エクセルシートのセルに3桁と4桁の数字を・・

    エクセルシートのセルに3桁と4桁の数字を入れたいのですが、 000とか、 001 とか、 0850 などです。 現在、 0とか 1 とか 850 になっています。 おそらく、数字情報のデータになっていると思います。 それぞれ、0で始まる3桁、4桁の文字列にしたいのですが、 よろしくお願いします。行数は30000行ほどあります。

  • エクセル 重複データのカウント

    初めまして。 初めて質問いたします。 よろしくお願いいたします。 エクセルで、A列に7ケタの数字13万件         B列に同じく7ケタの数字100~2000件         C列にB列にデータがある行まで=COUNTIF($A$2:$A$130000,B2) 上記の状況で、C列の値は1か0しか出ない状態なので、 セルD1に=COUNTIF(B2:B2000,0)と入れてB列にあるけどA列にないデータの 数(重複していないデータ)をカウントしています。 しかしながら、ベースとなっているA列のデータが13万件と多いので、 再計算などに結構時間がかかっているので、どうにかならないかと思いまして 質問させていただきました。 ちなみに、A列のデータは少しずつ増えていきます。 1度B列にあってA列にないデータは、次にB列に違うデータを入れてカウントする際に 新規データとしてA列に追加しています。 なんとか処理が速くなる方法などありましたらご教授下さい。 よろしくお願いいたします。

  • エクセルで特定のセルだけのカウント

     A  B  C   D 1           × 2   ×  ×  × 3 × 4 × 5 ×    × 上記のような表で、列ごとにその列だけが×のセル数をカウントする方法 がわかりません。 例えばA列=2(3、4行目は他の列に×を含まないのでカウント) B列=0 C列=0 D列=1(1行目) となります。 実際には行数が多いため計算式でカウントしたいと思っています。 どうぞよろしくお願いいたします。

  • エクセルのセルのカウント方法で質問です。

    エクセルのセルのカウント方法で質問です。 A列B列C列があります。 A列とB列のセル内の文字が指定した文字の時 C列のセル内に文字が入力されてる場合にカウントするにはどうすればよいでしょうか またカウントではなくC列に数字が入力されているとして合計値を出したい場合も教えてください。 例として画像を貼り付けます。

  • エクセルで、条件を指定した行数のカウントについて

    エクセルにて、条件に合致する行数のカウントを行うことは出来ますでしょうか。 添付画像のようなエクセルファイルにて、各日毎に「AAA」を含む行は何行あり、「BBB」を含む行は何行あるかをカウントしたいです。 添付のエクセルであれば、A列が「10月1日」でB列に「AAA」を含む行は○行という条件でカントが出来れば実現可能とは思いますが、 こういったカウントの仕方がそもそもエクセルで出来るのかどうか知りたいです。 もし、エクセル以外の方法で可能なのであれば、その方法も教えていただけるとありがたいです。

  • CSVデータの行数カウントをしたいのですが・・

    CSVデータの行数カウントをしたいのですが・・ どうしたらよいでしょうか? 目的は <tr> <td><?=$奇数行のデータ?></td> <td><?=$偶数行のデータ?></td> </tr> のように 2列のテーブルに奇数行と偶数行を出力させるためです。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう