Вопрос

У меня есть лист Excel,
альтернативный текст

Требуется суммировать цифры в ячейках в столбце «C» и поместить значение в соответствующую ячейку в столбце «B» (в моем примере 0,25 + 1 + 0,25 + 1 = 2,5).

Значения в столбце «C» могут измениться. Требуется обновить значение в «B», как только изменится ячейка в столбце «C».

Я попросил автора изменить текст и числа в двух разных столбцах, но это не приемлемо из-за стандартного шаблона.

Это было полезно?

Решение

Этого можно добиться, не изменяя текст в ячейке, используя макрос. Я должен признать, что реализация будет немного отсталой, так как вам нужно сделать несколько вещей.

1 - токенизируйте все содержимое ячейки и сохраните токены в массив строк.

Проблема уже есть. Текст, расположенный внутри ячейки, крайне противоречив. У вас есть -250 мс, - 250 мс, - 1 с, - 1 с. В связи с этим вам нужно будет проверять каждый экземпляр. Следовательно, вы не можете просто проверить, является ли значение числом, вам нужно проверить все варианты, которые члены вашей команды удобно предоставили вам.

Лучший способ сделать это - проверить регулярные выражения. Следовательно, № 2 должен быть:

2 - Проверьте каждое значение, чтобы увидеть, соответствует ли оно одному из многих 4 регулярных выражений.

3 - В зависимости от регулярного выражения, с которым оно совпадает, извлеките числовое значение.

a) Если просто значение (т. е. > 250), убедитесь, что значение равно ms или sec. Если мс, разделите число на 1000. Если с, оставьте число как есть. Добавьте номер к общему количеству.
б) Если перед цифрой стоит тире (-), удалите тире и повторите шаг а)
в) Если за цифрой следуют буквы, удалите буквы и повторите шаг а)
г) Если за числом следует точка, ничего не делайте. Это пуля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top