Я пишу макро функцию в Excel, чтобы организовать набор ежемесячных данных о продажах. Исходный формат использует 6 строк на запись, а организованная таблица использует только 1. Количество продаж меняется каждый месяц, поэтому мне нужно найти способ определить, сколько записей о продажах существует, чтобы я знал, как далеко продлить свои формулы.
В конце необработанных данных всегда появляется слово «SIGNED:» во втором столбце, поэтому я использовал косвенные функции и функции соответствия, чтобы определить, как далеко заполнить формулы. Код, который я использовал, выглядит так:
Application.Goto Reference:= _
"INDIRECT(""T"" & (MATCH(""SIGNED:"",RawData!C2:C2,0)-3)/6+1)"
Range("T2", Selection).Select
Selection.FillDown
И изначально он работал отлично, за исключением того, что иногда исходные данные не используют 6 строк, потому что иногда функция сопоставления с вышеуказанными входными данными не возвращает целое число. Поэтому я попытался использовать функцию потолка вокруг функции соответствия, чтобы убедиться, что я получил целое число, и подумал, что было бы хорошо, если бы он был выключен на один или два, как это легко сделать вручную. То, что я написал, выглядит так:
Application.Goto Reference:= _
"INDIRECT(""T"" & Ceiling((MATCH(""SIGNED:"",RawData!C[-20],0)-3)/6+1),1))"
Range("A2", Selection).Select
Selection.FillDown
Теперь я получаю ошибку и не могу понять, почему. Связано ли это с форматом числа, возвращаемого функцией потолка? Я был бы очень признателен за помощь в поиске решения или, возможно, даже за другой подход к определению количества записей о продажах.
Спасибо!