関数(I2)
=SUMPRODUCT(($A$2:$A$5>=$F$2)*($A$2:$A$5<=$H$2)*($B$2:$E$5=I1))
セルI2の値を求める記述を下記のようにしてみましたが動きません?
Dim kei As Long
kei = WorksheetFunction.SumProduct(Range("A2:A5" >= "F2") * Range("A2:A5" >= "H2") * Range("B2:G5" = "I1"))
Range("L2") = kei '表示する
また、右の表セルI2からK5までの時間別、品目別の個数を求めるにはどのように記述したらよろしいでしょうか?
ご教示いただけると助かります。
よろしくお願いいたします。
No.7
- 回答日時:
ご意見頂きました内容を基にしますと、
Dim r As Range
Set r = Cells(Rows.Count, "A").End(xlUp)
With Intersect(Range("F2", Cells(Rows.Count, "F").End(xlUp)).EntireRow, Range("I1", Cells(1, Columns.Count).End(xlToLeft)).EntireColumn)
.FormulaLocal = "=SUMPRODUCT((HOUR($A$2:" & r.Address & ")=HOUR($F2))*($B$2:" & r.Offset(, 4).Address & "=I$1))"
.Value = .Value
End With
Set r = Nothing
このような感じで出来ました。
No.6
- 回答日時:
数式でも『HOUR関数』は使えるので、
>=SUMPRODUCT(($A$2:$A$5>=$F$2)*($A$2:$A$5<=$H$2)*($B$2:$E$5=I1))
最初の数式は
=SUMPRODUCT((HOUR($A$2:$A$5)=HOUR($F$2))*($B$2:$E$5=I1))
とかは無理なのかな?
後は相対参照・行数の変更等で修正し書き入れたい範囲は決まっているので、No.4様のご意見を参考に一気に数式を入れて値に変換すれば早いのかも。
No.5ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Public Sub 時間別品目別個数算出()
Dim dicT As Object
Dim sh As Worksheet
Dim maxrow As Long
Dim maxcol As Long
Dim wrow As Long
Dim wcol As Long
Dim grow As Long
Dim gcol As Long
Dim key As String
Dim hh As Long
Set dicT = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set sh = ActiveSheet
maxrow = sh.Cells(Rows.Count, 1).End(xlUp).Row 'A列最終行を求める
maxcol = sh.Cells(1, Columns.Count).End(xlToLeft).Column '1行目の最終列を求める
sh.Range(sh.Cells(2, 9), sh.Cells(10, maxcol)).Value = "" '個数クリア
'品目記憶
For wcol = 9 To maxcol
dicT(sh.Cells(1, wcol).Value) = wcol
Next
'全行分繰り返す
For wrow = 2 To maxrow
hh = Hour(sh.Cells(wrow, "A").Value)
If hh < 9 Or hh > 17 Then
MsgBox ("時刻不正:" & sh.Cells(wrow, "A").Text)
Exit Sub
End If
'発注1~3分繰り返す
For wcol = 2 To 4
key = sh.Cells(wrow, wcol).Value
If key <> "" Then
If dicT.exists(key) = False Then
MsgBox ("品目不正:" & key)
Exit Sub
End If
'該当品目へ1加算
grow = hh - 7
gcol = dicT(key)
sh.Cells(grow, gcol).Value = sh.Cells(grow, gcol).Value + 1
End If
Next
Next
MsgBox ("完了")
End Sub
詳細なご説明ありがとうございました。
コメントをもとに解読し勉強させていただきます。
無事意図した動きを構築でき大変助かりました!
No.2
- 回答日時:
>4,品物は全部で13品目
は固定数or最大品目数としても、I1より右に事前に記載されてますか?
それとも集計する際に入力されている項目を取得し並べる必要があるのでしょうか?
F~H列についても。
PS.
>Range("A2:A5" >= "F2"
片方はRangeオブジェクトを用いているのに、相方は文字列"F2"って違うのかな?と思いました。(未検証ですが)
数式とごっちゃになってませんかね?
SumProduct(Range("A2:A5") >= Range("F2").Value)
なのかなぁ~と感じます。(初級者なので憶測ではありますが)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) Sheet1の出荷日と品名が並んだ表からSheet2の品名別出荷日別の個数一覧表を作っています。 オ 3 2022/12/01 23:54
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Sheet1のA列にコードB列にメアド、Sheet2のB列にコード一覧とD列にメアド一覧があり、Sh 3 2022/10/19 11:57
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
Vba 実数および実数タイプの変...
-
エクセルVBAについて
-
ユーザーフォームに別シートか...
-
VB.net(VB)で、フォームにExcel...
-
Excelのマクロについて教えてく...
-
エクセルの合計を自動で表示さ...
-
Excelのマクロでワードのテキス...
-
VBAの計算で@が出てしまう件
-
VBA listBoxから
-
エクセルのマクロについて教え...
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
左右の表のキー位置を合わせたい
-
VBAの質問になります メッセー...
-
Excel マクロについての相談
-
VBA レジストリの値の読み方に...
-
2つのマクロでチェックボックス...
-
Vba SelStart、SelLen教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報
お考えいただきありがとうございます。
1.A列の行は最大300件ほどになります。
2.A列の時刻は9:00~17:00の間で不定期です。
3.F列、H列は固定ですが行は9:00~17;00までの9行になります。
4,品物は全部で13品目
アップル、バナナ、メロン、オレンジ、なし、スイカ、ぶどう、もも、マンゴ-、みかん、いちじく、あけび、イチゴになります。
よろしくお願いいたします。
お考えいただきありがとうございます。
4.品目は固定数or最大品目数で、I1より右に事前に記載されてます。
よろしくお願いいたします。