我在 Excel 中创建一个简单的公式时遇到了很大麻烦。假设我有一张学生表和他们当前的学业成绩。我希望有一个公式可以自动识别自创建电子表格的基准日期以来已经过了多少时间,并根据自基准日期以来的年数将每个学生的学业成绩增加一分。我希望它根据 6 月 1 日的次数来增加成绩,因为那是暑假开始的时间,你可以认为学生将进入下一个年级。
我尝试过的一些事情以及我正在设置的一些参数:
我希望年级从“未上学”开始,然后是“学前班 3”、“学前班 4”、“幼儿园”、“一年级”、“二年级”……“十二年级”,最后是“高中毕业”。
我为每个学业成绩分配了一个整数值,以便整数值可以递增。我为“未上学”分配了 1,为“学前班 3”分配了 2,依此类推,直到“高中毕业”的分数为 17。
本质上,我在创建电子表格时为每个学生分配了他们当前成绩的基准值。
当将来打开这个电子表格时,我希望公式能够计算自创建日期以来已经过了多长时间,这意味着已经是 6 月 1 日多少次了,这个次数是每个学生的每个学业成绩整数增加的次数,然后这将反映在整数代表的字符串中。
我在 Excel 中“增加”任何内容时遇到问题。Excel 似乎没有内置此功能。我试图避免使用 VBA。
为了简单起见,我们假设:
我把所有等级的范围称为“等级”,
我的所有成绩整数值的范围称为“Grade_Values”,
我的学生基准成绩范围称为“Beginning_Grade”,
我的基准日期是 2024 年 1 月 1 日。
答案1
首先,Excel(以及所有其他电子表格?)将日期存储为从“基准日期”开始的天数,相同数字的小数部分指定相关时间距离该日期有多远:在任意单元格中
输入并将(CTRTL+1)0
更改为以查看基准日期。Cell formatting
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
所示相同的格式字符串 - 即这里。
经过一番思考,您可能会想出一个更精确的公式(如果确实需要的话)。