- ベストアンサー
VBAで複数の文言をカウントする方法
- VBAを使用して複数の文言をカウントする方法について悩んでいます。集計シートにある50種類の文言をカウントしたい場合、どのようにすればいいのでしょうか。
- 現在、VBAのマクロを使用して一つの文言のカウントを行っていますが、複数のカウントを取得する方法が分かりません。
- 具体的には、Cell(3,3) = WorksheetFunction.CountIF(Sheets("Sheet1").Range("A2:A100"), Cells(2,2))のように一つのカウント方法があるのですが、50種類の文言に対してそれぞれのカウントを取得したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- HohoPapa
- ベストアンサー率65% (454/692)
- ken-nosuke
- ベストアンサー率36% (56/154)
- chayamati
- ベストアンサー率41% (256/613)
- imogasi
- ベストアンサー率27% (4737/17068)
関連するQ&A
- VBA 別シートにカウントした結果を表示したい
VBA初心者です。 シート1で指定した単語をシート2にカウントした数を表示させたいです。 シート1のA列に100種類近い単語が縦に並んでいます。(重複している) 「りんご」「バナナ」「メロン」様々な単語があるとします。 シート2にはA列を横にした「りんご」「バナナ」「メロン」が並んでいます。(重複削除している) そのりんごなどの下に、リンゴがいくつか、バナナがいくつかをシート1からカウントした結果の数字を入れたいです。 今のところ、COUNTIFで単語を指定しているのですが、文言が増える可能性もあります。何かほかに案がありますでしょうか。 よろしくお願いいたします。
- 締切済み
- Excel(エクセル)
- シートをまたいでの計算
こんにちは。 シート1 シート2 シート3にあるA1のセルで りんご 柿 スイカのどれかが入力されていてその個数をそれぞれカウント したのですが、countifで計算してもエラーになります。 例 =COUNTIF(Sheet1:Sheet3!A1,"リンゴ") どうにか応用でも結構ですが計算する方法はないでしょうか? 理想としては えいんご 2 柿 1 スイカ 0 とカウントしたいです。 カウントする文字列は決まっています。 今のところ=COUNTIF(Sheet1!A1,"りんご")+COUNTIF(Sheet1!A2,"りんご")+COUNTIF(Sheet1!A3,"りんご") というような方法でやっていますが、これだとシートが多数ある場合に 面倒ですし。。
- ベストアンサー
- オフィス系ソフト
- エクセルで一致する数をカウントしたい
エクセル2010、OSはWindoes7です。 エクセルでセルに入っている単語、文章で一致するものの数をカウントしたいです。 例1 A列に以下のような単語が入ってるとします A1 りんご A2 みかん A3 バナナ さて、A列の「リンゴ」という単語の数を数えたい場合、普通は以下のようにします。 =countif(A1:A3,"りんご") (引数2は、どこかのセルに入れた凡例を参照するもよし) こうすれば結果は1となります。 他の単語の場合も同様です。引数2を代えれば、どんな単語でも自在にできます。 では以下のような場合はどうすればいいでしょうか? 例2 A列に以下のような単語が入ってるとします A1 りんご A2 みかん A3 バナナ A4 りんご みかん A5 いちご りんご A6 さっちゃんはね、バナナが大好き 本当だよ (注 A4,A5はAlt+Enter入力で、セル内改行してある) この状態で、A列にある、「りんご」の数をカウントせよ、という関数命令を実行させると 解答が りんご= 3 となるような関数を知りたい。 同様に「みかん」 =3 「バナナ」=2 と返してくるような関数を知りたい。 ちなみに、例2に対してcountif関数を実行させると、結果は りんご 1 みかん 1 バナナ 1 となる。 なぜならcountif関数では、カウントする定義は「一文字目から最終文字まで、完全一致」となっているので・・・。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 複数シートからリストの選択数をカウントしたい
エクセル2010での質問です。 初心者なのでわかりにくかったらすみません。 事前にフォーマットを作り、数人に集計してもらったデータ (リストを制作し、文字列を選択してもらう形)を1つの ブックにまとめました。各シートの名前は様々です。 この状態から、各シートので選ばれたリストの文字列を抽出し、 3D集計のように「合計」シートで総数を出したいのです。 例ーーーーーーーーーーーーーーーーーーーー ↓以下、リストで選択された項目です リストA リストB リストC…… sheet1 北海道 メロン 野球…… sheet2 沖縄 オレンジ 野球…… 上記を、このように集計したいのです 合計sheet リストA 北海道 1 沖縄 1 東京 0 リストB りんご 0 メロン 1 オレンジ 1 リストC 野球 2 サッカー 0 ゴルフ 0 ーーーーーーーーーーーーーーーーーーーー 各シートにリスト内の文字列の数をカウントする式を記載し、 そこで出た数を3D集計するという手法があるのは理解しているのですが、 シートの数が多いため、何かよい手法があれば……と思い、 質問させていただきました。 よろしくお願いします。
- 締切済み
- Excel(エクセル)
- エクセルで範囲内のデータを別シートにうつしたい
エクセルで特定の範囲内の数値にあてはまるデータを別のシートに新たな表として作成したいのですが、簡単な方法があれば教えてください。 例えば Sheet1 A B C 1 25 ミカン 3000 2 30 リンゴ 4500 3 5 メロン 9800 4 17 ブドウ 1800 5 50 バナナ 1000 このようなデータを次のような表にしたいのです。 A列の数値が10~30のみ行ごと抜粋する Sheet2 A B C 1 25 ミカン 3000 2 30 リンゴ 4500 3 17 ブドウ 1800 よろしくお願いいたします。
- 締切済み
- Windows 8
- エクセルで一つのセルに別Bookのデータを貼り付け
エクセルで別Bookにある複数の参照データを一つのセルに 貼り付けたいのですが、 例えばBook1には以下のようなデータがあります。 A列 B列 1 バナナ カテゴリ1 2 もも カテゴリ1 3 りんご カテゴリ1 4 メロン カテゴリ1 5 バナナ カテゴリ2 6 みかん カテゴリ2 7 もも カテゴリ3 8 バナナ カテゴリ3 9 いちご カテゴリ3 10 もも カテゴリ4 Book2にはB列にカテゴリ1・カテゴリ2・カテゴリ3というように、 項目が入力されています。 Book1を参照して、B列のカテゴリ1に当てはまるA列の値(例ではバナナ、もも、りんご、メロン)を Book2のカテゴリ1の横(A1)の一つのセル内に貼り付けたいのですが 可能でしょうか? A列 B列 1 バナナ もも カテゴリ1 りんご メロン 2 バナナ カテゴリ2 みかん 3 もも カテゴリ3 バナナ いちご つまり、Book2を上記のような形にできればと思います。 拡張子は .xlsxです。 A列の項目とB列のカテゴリ数は数1000ほどあり、 各カテゴリの数は1つのものもあれば、10数個あったりと不揃いです。 カテゴリに見合わせてコピペしていくのは大変なので 良い方法があれば、ご教授宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- 複数シートにおける複数条件のセルのカウント
困っています、教えて下さい!! 5枚のシートがあり、複数の条件に当てはまるセルをカウントしたいのですが、どうしたらいいでしょうか? ------------------------------------------------------------ シート1(りんご) A商店 4/1 ○ B商店 4/6 ○ A商店 4/25 × A商店 5/3 ○ つづく ------------------------------------------------------------- シート2(みかん) A商店 4/6 × A商店 4/15 ○ C商店 4/28 ○ B商店 5/7 × つづく ------------------------------------------------------------- たとえば上のような表を日々入力し、 4月件数 4月○ 5月件数 5月○ ・・・・・・ A商店 4 2 1 1 B商店 1 1 1 C商店 1 1 というような集計の表をつくりたいのです。 関数のSUMPRODUCTやCOUNTIF、ピボットテーブルなど 考えてみましたが、うまくいきません・・・ よろしくお願いしますm(_ _)m
- ベストアンサー
- オフィス系ソフト
- 別シートへの移動
任意の番号別に名前を付けた複数のシートとそれらを集計するシートが有ります。複数のシート名は以下のように取得しています。 mySheetCnt = ThisWorkbook.Sheets.Count For i = 2 To mySheetCnt mySheetNam = Sheets(i).Name Sheets(mySheetNam).Select Worksheets(mySheetNam).Range("d6").Select ・ Next i それぞれのシートで集計した結果をシート名”個人時間集計”のセルA5に書込み、その後"Next i"のシートに移って同じように集計させ、また結果をシート名”個人時間集計”に書込む。この処理を繰り返したいと思います。 質問は 1 "シート名”個人時間集計”のセルA5"の指定方法 2 その後"Next i"のシートに移って・・ 以上がどうしてもうまくいきません。どなたか教えて下さい。
- 締切済み
- オフィス系ソフト
- VBAでの他のシートにコピー
今sheet1へ、sheet2とsheet3のデータをコピーしようとしています。 sheet1は見出しが2行目にあり、3行目からsheet2をコピーしようとしています。 そのつぎに、sheet3はsheet1にsheet2のコピーした次の行からコピーします。 sheet2 A B C 3 鈴木 りんご 5 4 山田 バナナ 1 sheet3 A B C 3 大羽 メロン 2 4 鷲尾 スイカ 1 ↓2行目まで見出しがあるsheet1に sheet1 A B C 3 鈴木 りんご 5 4 山田 バナナ 1 5 大羽 メロン 2 6 鷲尾 スイカ 1 このとき、シート2とシート3は数は決まっていません。 そして、数が0のときもあるので「sheet2とsheet3にデータがないときはコピーしない」 をというふうにしたいのですが、どのようにすればよろしいですか? VBAで行いたいです。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- VBA変数とワークシート関数を一緒に使う
お世話になります。マクロ初心者です。 【VBA変数とワークシート関数を一緒に使う】事はできないのでしょうか? 下記以上の多数のパターンで試しましたが使えません(本にも例がありません)。 「使える」「使えない」だけで構いませんのでご教示ください。 (WorksheetFunctionに関しては別途質問させて頂きます) 一応使用例を書いておきます。 コメント「@数をカント3」で試していますが、下3つのような ワークシート関数のような使い方(貼付)ができればと思っています。 A1に \#%&/*@ C1:H5に 108@78 8@725@ 666@98 @@32@9 7@751@ (各セル1文字ずつ)を入れます。 Sub count() Dim o As String, p As String o = "=CountIF(R[-7]C[2]:R[-3]C[7],Right(R[-7]C[0],1))" p = "=CountIF((C1:H5),Right(A1,1))" With Sheets("Sheet1").Cells(6, 1) '@数をカント1 .Activate .Value = "=""@カウント = "" & CountIF(R[-5]C[2]:R[-1]C[7],Right(R[-5]C[0],1))" With Sheets("Sheet1").Cells(7, 1) '@数をカント2 .Activate .Value = "=CountIF((C1:H5),Right(A1,1))" With Sheets("Sheet1").Cells(8, 1) '@数をカント3 .Activate ' .Value = o ' ' .Value = p ' ' .Value = """@カウント = "" & o" '使えない ' .Value = "=""@カウント = "" & ""p""" '使えなさいよ ' .Value = "=""@カウント = """ & p '使えておくれ End With End With End With End Sub
- ベストアンサー
- その他MS Office製品
お礼
無事にカウントすることが出来ました! 本当に本当にありがとうございます!!!!