
Sub k()
Dim i As Long
Dim j As Long
dim zz as long
Dim zz As Long
zz = Cells(Rows.Count, 9).End(xlUp).Row
If Range("i2:i" & zz) >= DateSerial(2017, 10, 1) And Range("i2:i" & zz) <= DateSerial(2018, 3, 31) Then 2017/10/1~2018/3/31
j = Month(Range("i2:i" & zz)) 月を取り出す
For i = 3 To 4
For j = 4 To 6
金額の合計 取引先
Cells(i, j).Value = Application.SumIfs(Range("j2:j" & zz), Range("h2:h" & zz), Cells(i, 3), Range("i2:i" & zz), Cells(2, j))
2017/10/1~2018/3/31
Next j
Next i
End If
End Sub
ERROR 型が一致しませんとでます。
間違いわかる方いますでしょうか
H I J
販売先 商品名 販売額
井上商事 8月8日 52,000
上田青果 9月8日 65,000
井上商事 10月8日 78,000
上田青果 11月1日 43,000
井上商事 12月12日 45,000
上田青果 2018/3/5 57,000
井上商事 2018/3/6 49,000
上田青果 2018/3/7 80,000
井上商事 2018/3/8
上田青果 2018/3/9 80,000
上田青果 2018/3/10 80,001
上田青果 2018/3/11 80,002
C列 D E F
8 9 10
井上商事
上田青果
No.3
- 回答日時:
あとはSUMIFSの条件追加で対応させて
Sub k()
Dim i As Long
Dim j As Long
Dim zz As Long
zz = Cells(Rows.Count, 9).End(xlUp).Row
For i = 3 To 4
For j = 4 To 6
金額の合計 取引先
Cells(i, j).Value = Application.SumIfs(Range("j2:j" & zz), Range("h2:h" & zz), Cells(i, 3), Range("i2:i" & zz), Cells(2, j),Range("i2:i" & zz), ">=" & DateSerial(2017, 10, 1),Range("i2:i" & zz), "<=" & DateSerial(2018, 3, 31))
Next j
Next i
End If
End Sub
ですかね?
SUMIFS関数使えないので憶測にしかなりませんけど。
No.2
- 回答日時:
あくまで憶測です。
Sub k_2()
Dim i As Long
Dim j As Long
Dim zz As Long
zz = Cells(Rows.Count, 9).End(xlUp).Row
For i = 3 To 4
For j = 4 To 6
If Cells(i,9).Value2 >= DateSerial(2017, 10, 1) And Cells(i,9).Value2 <= DateSerial(2018, 3, 31) Then
Cells(i, j).Value = Application.SumIfs(Range("j2:j" & zz), Range("h2:h" & zz), Cells(i, 3), Range("i2:i" & zz), Cells(2, j))
End If
Next j
Next i
End Sub
と1個ずつ比較するか、
Sub k()
Dim i As Long
Dim j As Long
Dim zz As Long
zz = Cells(Rows.Count, 9).End(xlUp).Row
If Application.Max(Range("i2:i" & zz).Value2) >= DateSerial(2017, 10, 1) And Application.Min(Range("i2:i" & zz).Value2) <= DateSerial(2018, 3, 31) Then 2017/10/1~2018/3/31
For i = 3 To 4
For j = 4 To 6
金額の合計 取引先
Cells(i, j).Value = Application.SumIfs(Range("j2:j" & zz), Range("h2:h" & zz), Cells(i, 3), Range("i2:i" & zz), Cells(2, j))
2017/10/1~2018/3/31
Next j
Next i
End If
End Sub
とでもして『必要な期間』の条件を満たす物なのかを振り分けるか。
No.1
- 回答日時:
エラーの箇所がどこなのか提示する方が確実ですけど。
>If Range("i2:i" & zz) >= DateSerial(2017, 10, 1) And Range("i2:i" & zz) <= DateSerial(2018, 3, 31) Then 2017/10/1~2018/3/31
>j = Month(Range("i2:i" & zz)) 月を取り出す
If文にしても月を取り出すにしても、複数のセル範囲を指定してもダメですよ。
If文なら『どこのセルと比較したいのか不明』ですし、月を取り出すなら『どこのセルの値から月を取りだしたいのか不明』
な訳ですし。
1つずつ比較や月の取り出しを行わないと。
しかも取り出した月の変数とその後のFor~Nextの内側の変数が同じ名前ですから、取り出した数値は使われないし。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
VBA 何かしら文字が入っていたら
-
Excelで、あるセルの値に応じて...
-
VBAコンボボックスで選択した値...
-
Changeイベントでの複数セルの...
-
二つのリストを比べて部分一致...
-
VBAで、特定の文字より後を削除...
-
C# 列の挿入
-
VBAで指定範囲内の空白セルを左...
-
DataGridViewに空白がある場合...
-
VBAのFind関数で結合セルを検索...
-
VBAを使って検索したセルをコピ...
-
【VBA】2つのシートの値を比較...
-
エクセル 2つの表の並べ替え
-
【Excel VBA】 B列に特定の文字...
-
ExcelVBAでテキストルーレット...
-
VBAでのリスト不一致抽出について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報
このコード実行すると合計が0
になります。加算されないです
うまくいきませんでした。
ここまでお付き合い
有難うございました。
zz = Cells(Rows.Count, 1).End(xlDown).Row
If Range("b4:b" & zz) >= DateSerial(2017, 4, 1) And Range("b4:b" & zz) <= DateSerial(2017, 11, 30) Then
'↑の部分ですよね
'r = month(range("b4:b"&zz)
'i = r
'恐らくこんなかんじなんでしょうかあともう少しなんだけどな
そうなんですよね いろいろ質問していますが難しいばかりで。恐らくfind(what:=r,lookin:=とか使用するんだおもんですが?めぐみん様はできるからいいですよね
恐らくFIND(WHAT:=R,LOOKIN:=XLVALUE,XLWHOLEとか
使用してやるのが一番いいんでしょうね
今FINDを基礎がやっていますがなかなか応用できない
Scripting dictinonary
ですね 少しやってみます。
はい、Excel関数でMONTHで月を取り出しSumIFSを利用すればできます。がそこをVBAでやりたいわけなんです。f Year(Cells(i, "B")) = Year(Date) Then Set c = myrng.Find(what:=.Cells(i, "a"), LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then i = Month(Cells(i, "B"))今こんな所ですが駄目です。
このコードかっこいいです。なんとなくですがわかります。ひとつひとつ考えながら使用させて頂きたいと思います。まだ、不完全とは言え本当にかっこいい。