
У меня возникли серьезные проблемы с созданием простой формулы в Excel. Представьте, что у меня есть таблица студентов и их текущая академическая оценка. Я хотел бы иметь формулу, которая автоматически распознает, сколько времени прошло с базовой даты создания электронной таблицы, и будет увеличивать академическую оценку каждого студента на единицу в зависимости от того, сколько лет прошло с базовой даты. Я хотел бы, чтобы она увеличивала оценку в зависимости от того, сколько раз было 1 июня, так как это примерно время начала лета, и можно считать, что студенты перешли в следующий класс.
Некоторые вещи, которые я попробовал, и некоторые параметры, которые я устанавливаю:
Я бы хотел, чтобы оценки начинались с «не учится в школе», затем «дошкольный класс 3», «дошкольный класс 4», «детский сад», «1-й», «2-й», ... «12-й» и, наконец, «окончил среднюю школу».
Я присвоил каждой академической оценке целочисленное значение, чтобы целочисленное значение можно было увеличивать. Я присвоил 1 «не в школе», а 2 — «Pre-K 3» и так далее, пока «закончил среднюю» школу не станет 17.
По сути, я присваиваю это базовое значение каждому ученику для того класса, в котором он учится в данный момент, на момент создания электронной таблицы.
При открытии этой таблицы в будущем я хочу, чтобы формула вычисляла, сколько времени прошло с даты создания, сколько раз это означало, что это было 1 июня, и это количество раз будет равно количеству увеличений каждого целого числа академической оценки для каждого студента, что затем будет отражено в строке, которую представляет это целое число.
У меня возникли проблемы с "приращением" чего-либо в Excel. Похоже, в Excel нет встроенной такой функции. Я пытаюсь избегать использования VBA.
Для простоты скажем:
Мой диапазон всех оценок называется «Оценки»,
Мой диапазон всех целочисленных значений оценок называется «Grade_Values»,
мой диапазон базовых оценок учеников называется «Beginning_Grade»,
и моя базовая дата — 01.01.2024.
решение1
Во-первых, Excel (и все другие электронные таблицы?) хранит даты как количество дней от «базовой даты», десятичная часть того же числа указывает, насколько далеко от этой даты находится соответствующее ВРЕМЯ дня:
Введите a 0
в любую ячейку и измените Cell formatting
(CTRTL+1) на , Date
чтобы увидеть базовую дату.
https://help.libreoffice.org/latest/en-US/text/scalc/01/04060102.html- содержит все перечисленные функции, связанные с датой и временем.(Не знаю, можно ли найти то же самое для Excel).
Первый необязательный способ попробовать (если он даст достаточно хороший результат) прост:
=INT( (TODAY()-A1) / 365.25 )
... где 365,25 — это среднее количество дней в году, предполагая, что у вас есть «начальная дата» в A1.
Это даст вам количество лет, прошедших между датами.
Возможно, вам придется немного его подправить, чтобы получить то, что вы хотите для своего приложения.
Отрицательные значения будут означать «не учится в школе», от 0 и выше — насколько далеко продвинулся в обучении данный человек.
Обратите внимание также, что TEXT()
функция может предоставить вам пользовательское (строковое) представление даты; она использует ту же строку форматирования, что и Cell formatting
- т.е. как showздесь.
Поразмыслив, вы, возможно, придете к более точной формуле (если это действительно необходимо).