Построим формулу Excel шаг за шагом, чтобы вы могли увидеть подход.
План состоит в том, чтобы рассчитать длину строки, не содержащей нулевых элементов, и сравнить ее сдлина исходной строки.
Первый шаг - заменить любые нулевые элементы пустыми строками.Но мы не можем просто удалить все нули, потому что в ненулевых записях могут быть нули (например, «100»).Таким образом, мы должны определить записи списка.
Здесь я предполагаю пару вещей:
- Между запятыми и элементами списка не будет пробелов (пробелов).
- Если элемент списка начинается сноль, то элемент равен нулю.Другими словами, ведущие нули (например, 012) НЕ допускаются.
Мы можем внести коррективы, если любое из этих предположений неверно.Но проще, если мы можем сделать эти предположения, и они согласуются с вашими примерами.
Итак, мы можем удалить ноль элементов, подставив ", 0" в ",".Но мы попали в ловушку.Подстановка ", 0" не найдет 0, если это первый элемент.Итак, давайте добавим запятую перед первым элементом списка чисел.Это позволяет нам использовать «, 0» для замены.
=Substitute(ref, "[", "[,")
Я использую 'ref' в качестве адреса ячейки, где находится строка.
Теперь давайте добавимЗаменить, чтобы избавиться от 0 элементов из списка:
=Substitute(Substitute(ref, "[", "[,"), ",0", ",")
Обратите внимание, что мы используем результаты первого (внутреннего) замещения в качестве входных данных для второго (внешнего) заменителя.
Теперь найдите число удаленных нулевых элементов, сравнив длину исходной строки с длиной вычисленной строки:
=Len(ref) - Len(Substitute(Substitute(ref, "[", "[,"), ",0", ",")) + 1
Нам нужно добавить один в концеформула, потому что мы сделали нашу вычисленную строку на один символ длиннее, когда добавили запятую перед первым элементом в списке.
Прежде чем копировать формулу в Excel, не забудьте изменить 'ref' на фактическую ссылку на ячейку.Это происходит в двух местах в формуле.