
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ランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
エクセルの循環参照、?
-
【関数】同じ関数なのに、エラ...
-
【マクロ】列を折りたたみ非表...
-
【マクロ】【配列】3つのシー...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】3行に上から下に並...
-
【マクロ】オートフィルターの...
-
【マクロ】A列にある、日付(本...
-
vba テキストボックスとリフト...
-
エクセル
-
【エクセル】期限アラートについて
-
Excel 複数のセルが一致すると...
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報