![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Excelで週ごとに新しいワークシートを作っています。
その毎週ごとのワークシート内の一部の範囲を指定して、その範囲内に出現する文字列の回数をカウントしてその出現回数を新規ワークシートに作成したいと考えています。
週は時間がたつに連れ増えますが、最高でも1年分です。
初めはそれぞれのワークシート内でcountif関数でそれぞれの文字をカウントし、そのあと合計ページで各ワークシートの値をSUM関数で合計していました。
しかしこれだと新しいワークシートが増えたときに非常に手間ですし、たまにワークシートが抜けてしまうことがあります。
週ごとのワークシートの名前の付け方には規則性があって、1週・2週といった感じです。
それ以外の名前のワークシートはテンプレートという名前と、合計という名前だけです。
各ワークシートの中も、基本的なレイアウトは同じで、特定の文字列の出現範囲も同じで、文字の現れ方だけが違う感じです。
「ああああ」とあって、2週目は「ああいい」3週目は「あいあい」みたいな感じです。
最終的に「あ」「い」と言う文字は全ワークシート内で何回出たか!というのを合計ワークシートに集計したいのです。
何か簡単な方法はないでしょうか?
アクセスで作ったら簡単にできたのですが、これを使う人間がアクセスは無理だということで、どうしてもExcelということになりました。
私はExcelが苦手で、countifとsumをなんとかみつけたのですが、これだと週が抜けたりとか、あまりに合計が手間なので何かあれば教えて貰いたいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
以下はユーザ定義関数です。
標準モジュールに貼り付けます。シート名の最後が「週」のシートの指定文字の個数をすべて合計します。
文字「あ」の個数をカウントするときは、=MojiCount("あ") のようにします。
セルを引数にすることもできます。
Function MojiCount(Moji As String)
Application.Volatile
Dim ws As Worksheet
Dim rg As Range
Dim CNT As Long
For Each ws In Worksheets
If Right(ws.Name, 1) = "週" Then
For Each rg In ws.UsedRange
CNT = CNT + (Len(rg.Text) - Len(Application.Substitute(rg.Text, Moji, ""))) / Len(Moji)
Next
End If
Next
MojiCount = CNT
End Function
ありがとうございます。
さっそく試してみますね。
こういう方法は初めてなので時間がかかりそうです。
明日またどうなったか補足へ書かせていただきます。
No.3
- 回答日時:
#1です。
勘違いしていたみたいです。
1週目シートは あ をカウント 2週目シートは いをカウント
と言うふうに、カウントする内容がシートにより異なると思ってました。
補足頂いた詳細内容であれば、countif と sumだけでも何とかなりそうです。
シートを増やす場所を工夫すればいいのではないでしょうか。
シート見出しを
1週 | 2週 | 3週 | ・・・ | n週 | サンプル | 合計
と言う形で並べて、サンプルシートも1週~n週と同じフォーマットで
値を入れないでおきます。(テンプレートとして使用しても可)
1週からn週、サンプルのシートで、「あ」をカウントする位置と
「い」をカウントする位置を固定にしておきます。
例えば 「あ」のカウント位置を X1セル 「い」のカウント位置を
X2セルに指定しておいて、合計シートのSum関数を
=SUM( と入力し、1週目シートを選択し Shiftキーを押しながら
サンプルシートを選択すると =SUM('1週:サンプル'! と関数に
表示されますので、X1と入力して かっこを閉じます。
シートを増やす時は、1週~サンプルシートの間に増やしていけば
自動的に合計値に加算されます。
http://www11.plala.or.jp/koma_Excel/contents5/ma …
No.1
- 回答日時:
COUNTIFをどのシートに入れられているのか、合計をどの様にされているのか
具体的な例がないので、一般的な説明になりますが・・。
シート名を増やす時に規則性があるのでしたら、現在の関数に追加して
CELL関数を使用してみてはいかがでしょうか。
http://www.relief.jp/itnote/archives/001079.php
手順としては、シート名と該当する検索文字列の表を作成
例)シート名 検索
A列 B列
1週 ああああ
2週 ああいい
シート名を書き出したセルをA1として
=VLOOKUP(A1,検索!$A$1:$B$100,2,false)
として、該当シートの検索文字列をB1に表示
http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html
このB1の文字列を使用してCountif関数で文字列を数えて
最後に串刺し計算でCountifの値を集計
と言うような方法ではいかがでしょうか。
この回答への補足
COUNTIFを各ページに入れています
A B C D
あ い あ あ
あ あ い い
で適当な場所に
F G
「あ」の出現回数は countif(A1:d2,"あ")
「い」の出現回数は countif(A1:d2,"い")
という感じでcountを取ります
これを各ワークシートごとにやって
合計ワークシートで
あ→sum(sheet!.....)
い→sum(sheet!.....)
といった感じです。
cell関数とvlookup関数を使うのですね。
さっそく試してみたいと思います。
ありがとうございました。
補足で足りない部分がありました。
合計ワークシートで
あ→sum(sheet!.....)
い→sum(sheet!.....)
といった感じです。
の部分ですが、ワークシートが増えるごとにsum関数の括弧の中の値を増やしています。
ここでたまに抜けたりしてしまっています。
なんとかこの作業を自動化したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 別シートに毎回異なるデータをコピーする 7 2022/06/24 09:02
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Excel(エクセル) エクセルの数式について ブック内の別シートの値の含まれたセルの個数を集計したい 全シート一覧のシート 1 2022/07/21 19:28
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) Excel_マクロ_複数のシートのVLOOKUPで表示された#N/A以外に色付けをしたいです 1 2023/02/16 22:37
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) EXCEL 関数を教えてください。(A列の同じ値が複数ある場合vlookupで出来ますか) 4 2022/12/07 20:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATE関数で現在の年齢を出した...
-
エクセルでCtrl+Tでテーブルの...
-
REGEXREPLACE関数について、
-
エクセルのクイックアクセスツ...
-
在庫管理表に使うエクセルの関...
-
職場の人から聞かれており、こ...
-
下記マクロでMsgBox "空白です...
-
Excel関数-文字列で自動作成さ...
-
エクセルでバーコード作成し使...
-
【マクロ】for next構文について
-
ユーザー定義関数をアドイン登...
-
エクセルの関数について教えて...
-
エクセルで表
-
PDFの請求明細をエクセルにしたい
-
Excelデータをコピペして、ペー...
-
スプレッドシート、Excelでの数...
-
エクセルで特定の範囲内から小...
-
Excelで50個のセルに同じ文字を...
-
エクセルで会社の従業員のデー...
-
【マクロ】関数をセルに入力す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報