С помощью этого сайта и нескольких других я чуть не взялся за этот проект, связанный с работой, который, как я думал, изначально выходил за рамки моих возможностей. Это сообщество было удивительно полезным и хочу поблагодарить всех за это. Последнее, на чем я застрял, это то, что каждый раз, когда я добавляю / обновляю данные на листе, требуется слишком много времени для пересчета всех используемых формул. Я считаю, что главная причина, по которой это происходит, заключается в большом количестве пустых ячеек между данными в одном из моих столбцов.

Вот сделка. У меня есть лист Google с 2 страницами. На первой странице с именем Raw есть 3 столбца для импорта "необработанных" данных, скопированных / вставленных из других источников. Вторая страница под названием "Очистить" - это три столбца, собирающие очищенные данные, которые мне нужны. Столбцы A и C на чистом листе в порядке и не имеют много пустых ячеек. Столбец B из-за источника необработанных данных и того, что я извлекаю из него, у меня осталось значительное количество пустых ячеек между строками данных, которые мне действительно нужны. Вот формула, которую я использую в столбце B моей страницы чистых данных: = IFERROR(REGEXREPLACE(Raw!B2, "[$] [0-9] {1,4} ·", "")), который, как вы, вероятно, можете видеть, извлекает определенные строки из столбца B необработанной страницы. Вся остальная информация, которая не соответствует регулярному выражению, оставляет пустые ячейки в моем чистом листе.

Кто-нибудь может порекомендовать лучший способ устранения пустых ячеек на чистом листе, при этом извлекая нужную информацию? Медленный перерасчет - это последнее препятствие, которое мне нужно решить, прежде чем я смогу использовать его на работе и сделать мою повседневную жизнь намного проще.

Заранее спасибо за любые предложения и извините за стену текста!

1 ответ1

0

Решение для электронных таблиц Google, так как REGEXREPLACE недоступен в Excel. Добавьте обертку IFERROR. Скопируйте вниз, чтобы увеличить строку ($ A1).

=ARRAYFORMULA( INDEX( REGEXREPLACE( $B$2:$B$1000, "[$][0-9]{1,4} · ", ""), SMALL( IF( REGEXREPLACE( $B$2:$B$1000, "[$][0-9]{1,4} · ", "") <> "", ROW($B$2:$B$1000) - ROW($B$2) + 1, ""), ROW($A1))))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .