sno*_*noz 5 excel formula libreoffice
我正在尝试在 Excel 中编写一个 GPA 计算器(确实是 LibreOffice,但它的工作原理是一样的),我需要帮助的是计算质量点。我只用 C 和类似的语言编写过代码,因此电子表格及其符号对我来说非常陌生。
如果您不知道,GPA 的计算方法是将您的总质量分数除以您的总学分,质量分数是您在特定班级中设置为 4 级的分数乘以该班级的学分值。因此,例如,如果我在一堂 4 小时的课上得了 B,那门课我会得到 3*4 = 12 的质量分。如果我参加了一个 17 小时的学期并获得了 63 个质量分,那么该学期我的 GPA 为 63/17 = 3.706。
切入正题,我的电子表格是这样设置的
A B C
GRADE CREDITS QUALITY
1 B 3 9
2 A 4 16
3 B 1 3
...
Run Code Online (Sandbox Code Playgroud)
所以我的公式看起来像这样
IF(A1="A",4*B1,
IF(A1="B",3*B1,
IF(A1="C",2*B1,
IF(A1="D", B1,0))))
Run Code Online (Sandbox Code Playgroud)
问题是,此代码仅适用于第一行。对于任何其他行,我必须用正在计算的行号替换所有 1。一定有更好的方法来写这个公式。我将如何概括这一点,以便我可以在不编辑的情况下复制和粘贴公式?
在 Excel 中,您可以复制和粘贴公式,或填写公式,它会自动为您更新引用。你试过把公式复制下来吗?否则,您可以执行使用 INDIRECT 和 ROW 等命令的间接公式,但我不能保证它们会转换为 LibreOffice。
如果您需要使用 INDIRECT 公式,它看起来像这样:
=IF(INDIRECT("A" & ROW())="A",4*INDIRECT("B" & ROW()),
IF(INDIRECT("A" & ROW())="B",3*INDIRECT("B" & ROW()),
IF(INDIRECT("A" & ROW())="C",2*INDIRECT("B" & ROW()),
IF(INDIRECT("A" & ROW())="D", INDIRECT("B" & ROW()),0))))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17022 次 |
| 最近记录: |