Excel,从同一行,但不同的列获取值

我试图用Excel编写一个GPA计算器(LibreOffice真的,但工作原理是一样的),我需要帮助的是计算质量点。 我只用C语言和类似的语言编写代码,所以电子表格和它们的符号对我来说是非常陌生的。

如果您不知道,GPA的计算方式是将您的总质量积分除以您的总学分,质量积分将您的成绩设置为特定class级的四分制乘以class级的学分值。 所以,例如,如果我在四小时课上得到一个B,我会得到3 * 4 = 12的质量分。 如果我花了17个小时的学期并获得了63个优质积分,那么这个学期的GPA是63/17 = 3.706。

说到这里,我的电子表格就是这样设置的

ABC GRADE CREDITS QUALITY 1 B 3 9 2 A 4 16 3 B 1 3 ... 

所以我的公式会看起来像这样

 IF(A1="A",4*B1, IF(A1="B",3*B1, IF(A1="C",2*B1, IF(A1="D", B1,0)))) 

问题是,这个代码将只适用于第一行。 对于任何其他行,我不得不用计算的行号replace所有的1。 必须有更好的方法来写这个公式。 我怎么去概括这个,所以我可以复制并粘贴公式而不编辑它?

在Excel中,您可以复制并粘贴一个公式,或者填写一个公式,它会自动为您更新引用。 你有没有尝试复制公式? 否则,您可以使用间接公式使用间接和行,但我不能保证这些将转换为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))))