Подсчитайте количество дат в одной ячейке

Мне нужно уметь подсчитывать количество дат в одной ячейке Excel, которая отформатирована как текст. Даты не соответствуют определенному формату. Вот пример текста в одной ячейке:

«Джон родился 15.11.2005. Тим родился 1 января 02. Джефф родился 5/5/13».

Формула должна возвращать счетчик из 3 дат для этой ячейки. Я пробовал COUNTIF, поиск с дикими картами. лучшее, что я могу сделать, это получить счет одного для первого экземпляра, обнаруженного с помощью:

=COUNTIF(F3,"*/*/*") 

Поскольку существует так много потенциальных шаблонов, я бы рекомендовал функцию User Defined Function (UDF), написанную с использованием VBA. Для определения данных можно использовать регулярное выражение. Сложность регулярного выражения зависит от потенциальной изменчивости в строке даты. Пример ниже: для любой / разделенной строки, которая имеет одну или две цифры в первом и втором секциях и две или четыре цифры в третьем разделе. Но картина может быть намного сложнее.

Чтобы ввести эту пользовательскую функцию (UDF), alt-F11 открывает редактор Visual Basic. Убедитесь, что ваш проект выделен в окне Project Explorer. Затем в верхнем меню выберите «Вставить / Модуль» и вставьте код ниже в открывшееся окно.

Чтобы использовать эту пользовательскую функцию (UDF), введите формулу типа

 =CountDates(cell_ref) 

в некоторой ячейке.

 Option Explicit Function CountDates(S As String) As Long Dim RE As Object, MC As Object Const sPat As String = "\b(?:\d{1,2}/){2}(?:\d{4}|\d{2})\b" Set RE = CreateObject("vbscript.regexp") With RE .Pattern = sPat .Global = True Set MC = .Execute(S) CountDates = MC.Count End With End Function 

Основываясь на первом предложении @Scott Craner, скопируйте A1 в B1 и C1, в D1:

 =(LEN(A1)-LEN(B1))/4+(LEN(A1)-LEN(C1))/3 

Затем выберите ColumnB, HOME> Editing – Find & Select, Replace …, Find what: /??/ , Replace All. Затем повторите для ColumnC, но с /?/ .

  • Импорт данных, разделенных запятыми, в Excel
  • Ошибка открытия текстового файла, сохраненного с расширением .xls в python
  • Вставка массива из текстового файла в Excel, начиная с определенного значения строки
  • Вертикальный текст HTML в ячейке + экспорт в Excel
  • Экспорт из Excel в текстовый файл без разрывов строк
  • Формулы Excel не работают - не распознавая номера
  • Требуется объект Range.text
  • Как выводить наиболее распространенное значение и количество вхождений этого значения в электронную таблицу?
  • Извлечение частей из текстового файла
  • Лучший способ записи нескольких файлов .ini
  • Как скопировать диапазон Excel в файл Text (.txt), неформатированный, чтобы все ячейки формировали одну единственную строку и не являлись отдельными элементами? C #
  • Interesting Posts

    Дата и время начала и окончания матча в серии данных Excel

    Лист Excel появляется с запросом пароля, даже после того, как он жестко закодирован в VB.NET

    обновление целевой рабочей книги, извлечение данных из исходной книги

    Как обновить внешнюю книгу, когда я работаю в модуле ThisWorkbook?

    промежуточный итог, совпадение индекса с динамическим диапазоном и несколькими критериями

    Сохранить с помощью msoFileDialogFilePicker

    Импортировать только данные таблицы с помощью excel to excel connection

    Объедините экспорт массовых данных в «R» без необходимости добавлять вырезанные и вставляемые строки один за другим

    Тип значения в ячейке Excel

    WPF VB Экспорт datagrid (не datagridview) в Excel

    Как использовать командный файл для автоматического запуска кода VBA

    Удаление столбцов в защищенном листе

    Вставка последовательности номеров в текстовый диапазон с критериями

    Сохранение форматирования Excel при вставке ячеек в таблицу

    Добавление недельного столбца и номера на прошлой неделе, чтобы сделать общую кумулятивную колонку в excel

    Давайте будем гением компьютера.