Я экспортирую много строк из Stata в Excel.
Для одного столбца из 3000+
строк с разными строками в каждой, мне нужно проверить длину каждой строки / ячейки.Я мог бы сделать это в Stata, используя функцию length()
, но мне нужно иметь возможность открывать файл Excel, редактировать заданную строку и автоматически обновлять длину в Excel.
Кажется, что это должно быть просто с помощью команды putexcel
или функции put_formula()
Маты, но время запуска непомерно велико.
В корне мой вопрос касается создания множества относительных ссылок (например, =LEN(A1)
) в mata
одновременно, а не по одному за раз.
Это может иметь больше смысла после просмотра кода ниже:
mata: b = xl()
mata: b.create_book("Formula_Test", "Formula_Test", "xlsx")
mata: b.load_book("Formula_Test")
*Put some strings in column 1
mata: b.put_string(1, 1, "asfas")
mata: b.put_string(2, 1, "sfhds")
mata: b.put_string(3, 1, "qwrq")
mata: b.put_string(4, 1, "dgsdgsdgsdgs")
*Formula - export one-at-a-time
*This works, but is slow
foreach i of numlist 1/4{
mata: b.put_formula(`i', 2, "LEN(A`i')")
}
*Formula - export all at once with relative reference
*This would be faster, but throws error
mata: b.put_formula((1,4), 3, "LEN(INDIRECT("C[-2]",FALSE))")
Когда я запускаю последнюю строку, я получаю сообщение об ошибке:
invalid expression
r(3000);
Есть лиэффективный способ написать весь столбец или строку формул Excel, используя mata
, с относительными ссылками?