Я работаю над составлением отчета о фиде, о котором я спрашивал в предыдущем вопросе. В одном из полей указывается количество отправляемых в данный момент товаров, но для этого необходимо использовать критерии из отдельного столбца, относящиеся к вводным датам (UDF_INTRODUCED).
Я использовал функцию COUNTIF, чтобы получить счетчик «UDF_INTRODUCED» за последние 6 месяцев, и теперь мне нужно получить количество элементов с «FirstOfDuedate1» в этой группе. Я не знаю, является ли это вложенным COUNTIF или мне нужно будет использовать COUNTIFS.
Изображение исходных данных:
Заголовки исходных данных и 7 строк
Изображение токового выхода, необходимо получить числовое значение для поля B7:
Токовый выход
Я пытаюсь использовать функцию COUNTIFS для подсчета на основе нескольких критериев, как показано в конце кода ниже:
Sub CommandButton1_Click()
Range("A2").Value = "Total FG"
Range("A3").Value = "Total out of stock"
Range("A4").Value = "Total out of stock intro past 6 months (included in
Total out of stock)"
Range("A5").Value = "Total out of stock less past 6 months introductions"
Range("A6").Value = "Percentage in stock not included new introductions"
Range("A7").Value = "Items in Transit"
Range("A8").Value = "Percentage in stock including items in transit"
Dim MyPath As String, mps As Variant, mps_temp As String, mydate As Date,
IntroDate As Date, i As Integer
MyPath = "C:\Users\Kirank\Documents\Stock Feed
Analysis\HVL_Available_to_Sell_Report_with_Headers 2019.01.01"
mps = Split(MyPath, " ")
For i = LBound(mps) To UBound(mps)
mps_temp = mps(UBound(mps) - i)
If mps_temp Like "####.##.##" Then
mydate = DateSerial(Mid(mps_temp, 1, 4), Mid(mps_temp, 6, 2),
Mid(mps_temp, 9, 2))
IntroDate = mydate - 181
Exit For
End If
Next
Range("B1").Value = mydate
Range("B2").Select
ActiveCell.FormulaR1C1 =
"=COUNT(HVL_Available_to_Sell_Report_wi!C[3])"
Range("B3").Select
ActiveCell.FormulaR1C1 =
"=COUNTIF(HVL_Available_to_Sell_Report_wi!C[3],0)"
Range("B4").Select
ActiveCell.FormulaR1C1 =
"=COUNTIF(HVL_Available_to_Sell_Report_wi!C[13],"">=" & IntroDate & """)"
Range("B5").Select
ActiveCell.FormulaR1C1 = Range("B3") - Range("B4")
Range("B6").Select
ActiveCell.FormulaR1C1 = (Range("B2") - Range("B5")) / Range("B2")
Selection.Style = "Percent"
Range("B7").Select
ActiveCell.FormulaR1C1 =
"=COUNTIFS(HVL_Available_to_Sell_Report_wi!C[4]," > " & 0" &
"HVL_Available_to_Sell_Report_wi!C[13],"">=" & IntroDate & """)"
End Sub
В результате получается «ИСТИНА», а не число. Окончательное значение для этого должно быть 45.