[[20180830102525]] 『特定の文字があったときにカウントする方法を教え』(THカチ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『特定の文字があったときにカウントする方法を教えていただきたいです』(THカチ)

特定のテキストが一致し、特定のテキストが含まれていた場合、
その隣のセルの合計を返してほしいのですがどうすればよいでしょうか。。

例えば

◆シート1
8/10 みかん 2
8/10 いちご 1
8/10 みかん 1
8/11 りんご 2
8/11 りんご 1

◆シート2 ※シート1の合計値
8/10 みかん 3
   いちご 1

8/11 りんご 3

といった感じです・・・・

どうかよろしくお願いいたします。

< 使用 Excel:unknown、使用 OS:unknown >


 日付は考慮するんですか?
(コナミ) 2018/08/30(木) 10:40

日付も考慮します。
例えば 
「シート1の日付欄にて”8/10”と記載があった場合の”みかん”合計値は”3”」という条件でシート2へ合計数値を返したいです。
伝わりづらく申し訳ありません…
(THカチ) 2018/08/30(木) 10:47

 では、SUMIFS関数でできますよ。

 全部集計するなら項目名をつけてピボットテーブルがお勧めですけど。
(コナミ) 2018/08/30(木) 10:49

 Excelのバージョンは何ですか?

 以上、確認だけ
(笑) 2018/08/30(木) 11:00

 もうひとつ確認

 Sheet2は ↓ までは入力済み、ということでいいですか?

	A	B	C
1	日付	品名	数量
2	8/10	みかん	
3		いちご
4	8/11	りんご

 だとしても、A3セルのように空白にせず、すべて日付を入力しておいた方が簡単にできます。

 以上です
(笑) 2018/08/30(木) 11:27

Sub main()
    Dim dic1 As Object, k As Variant, c As Range, r As Range
    Sheets("Sheet2").Cells.Clear
    Set dic1 = CreateObject("Scripting.Dictionary")
    For Each c In Sheets("Sheet1").Range("A:A").SpecialCells(2)
        dic1(c.Value & vbLf & c.Offset(, 1).Value) = dic1(c.Value & vbLf & c.Offset(, 1).Value) + c.Offset(, 2).Value
    Next c
    Set r = Sheets("Sheet2").Range("A1")
    For Each k In dic1
        r.Resize(, 3).Value = Array(Split(k, vbLf)(0), Split(k, vbLf)(1), dic1(k))
        Set r = r.Offset(1)
    Next k
End Sub
(mm) 2018/08/30(木) 11:40

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.