【问题标题】:Excel, getting values from the same row but different columnExcel,从同一行但不同列获取值
【发布时间】:2012-12-22 15:42:33
【问题描述】:

我正在尝试在 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
...

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

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

问题是,此代码仅适用于第一行。对于任何其他行,我必须用正在计算的行号替换所有 1。必须有更好的方法来编写这个公式。我将如何概括这一点,以便我可以复制和粘贴公式而不进行编辑?

【问题讨论】:

  • 哇哦。复制和粘贴工作!那很整齐。我永远不会这么容易。谢谢。

标签: excel formula libreoffice


【解决方案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))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多