Как вернуть максимальное значение из нескольких значений в одной ячейке?

Как вернуть максимальное значение из нескольких значений в одной ячейке?

В моей электронной таблице есть ячейки, в которых содержится несколько дат, разделенных точкой с запятой ;.

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

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

Вот пример: Пример формулы TextSplit

решение1

Если я правильно понял, то должна работать следующая формула:

введите описание изображения здесь


  • Формула, используемая в ячейкеB1

=MAX(--TEXTSPLIT(A1,"; "))

Или использовать BYROW()для получения всех выходных данных за один раз, без заполнения!

введите описание изображения здесь


=BYROW(A1:A3,LAMBDA(α, MAX(--TEXTSPLIT(α,"; "))))

Приведенная выше формула также работает с имеющимися образцами данных, и вот пример демонстрации.

введите описание изображения здесь


Пояснения:

  • Использование TEXTSPLIT()функции: помогает разделить строки по разделителю semi-colon with a space--> ;по столбцам. (Пожалуйста, ознакомьтесь с .gifпоказанным здесь).

Так как это функция, которая относится к библиотеке функцийТекстследовательно, можно понять, что при его использовании строки дат будут разделены как текст, что создаст проблему для будущих манипуляций с данными, (Примечание: В Excel даты и время хранятся в виде чисел, поэтому целая часть представляет собой дату, а десятичная — время для даты.)

Следовательно, как упоминалось в OP, пользователь, использующий DATEVALUE()его, может преобразовать его в истинные даты или с помощью double unaryили путем сложения, 0или путем умножения на 1или деления на 1, что в конечном итоге преобразуется.


  • После того, как вышеизложенное сделано, мы можем обернуть это в MAX()функцию для возвратапоследний/самый большой/максимальный/самый высокий(как бы это ни звучало) дата.

Причины:

Почему пользователь получал 0при использовании предоставленной мной формулы, в то время как он получал соответствующий вывод при использовании DATEVALUE(), чтобы объяснить, скриншот поясняет это.

введите описание изображения здесь


  • Пользователь использовал в качестве разделителя только точку с запятой, ;тогда как я использовал точку с запятой и пробел.;
  • Итак, когда при обертывании MAX()в двойном унарном он возвращал ошибку, так как он только преобразовывал первый в число, а второй возвращал ошибку, так как имел начальный пробел. Но тот, который с разделителем точкой с запятой и пробелом, должен работать, см. скриншоты.

введите описание изображения здесь


  • Используя DATEVALUE()функцию, он заботится о ведущем пробеле и преобразует его в число, а затем, заключив в него, MAX()получает желаемый результат. Альтернативные способы, были упомянуты в начале с использованием ;, и другой способ справиться с этим — с использованиемTRIM()

=MAX(--TRIM(TEXTSPLIT(A3,";")))

решение2

Я не пробовалответ предоставлен @MayukhBhattacharya, но я ценю предоставленную информацию, поэтому я дал ответ этому пользователю.

Я определил, что ответы необходимо изменить на DateValue, поэтому я вставил формулу DATEVALUE между формулами MAX и TEXTSPLIT.

Формула, которую я использовал, была следующей:

=MAX(DATEVALUE(TEXTSLIT(A2, ";")))

Смотрите пример ниже:

Вставить ДАТАЗНАЧ в формулу

Обязательно отформатируйте ячейку, используя поле краткой даты.

Связанный контент