【问题标题】:Excel - Mutiple IFs in one cellExcel - 一个单元格中的多个 IF
【发布时间】:2013-04-05 03:28:42
【问题描述】:

好吧,标题有点误导。首先,我在 Google 电子表格中。其次,这不仅仅是 IF(condition, return IF(...)) 那种情况(另外,我环顾四周,看看我是否可以在这个网站上发布一个 excel 公式问题......没有看到太多所以如果这不是合适的地方,请随意说,我会删除)。

我有一个表格,我需要从 2 个单元格中获取一个值:

   -3 -2 -1 0  1  2  3  4  5
  ___________________________
A| 0, 0, 0, 1, 2, 4, 8, 12,16
B| 0, 0, 1, 2, 4, 8, 12,16,20
C| 0, 1, 2, 4, 8, 12,16,20,24
D| 1, 2, 4, 8, 12,16,20,24,28

如果 A1 是 "A"、"B"、"C" 或 "D" 并且 B1 在 -3 - 5 的范围内,我基本上需要 C1 来等于返回的值。

我所有的尝试都是#error,所以在我为解决这个问题而投入的最后一个小时里,我没有任何东西可以展示。我相信有办法。如果你想要我失败的尝试,请告诉我。

【问题讨论】:

  • 在您的示例中,A 是一个数字行,那么“如果 A1 是“A”、“B”、“C”或“D”是什么意思?此外,如果满足您的约束条件,C1 的值应该是多少?如果不满足,它的值应该是多少?
  • @SimonMcKenzie 它会进入一个表格供用户填写。示例:A1 可以输入“A”,B1 可以输入 3,C1 将返回 8。否则,C1 应为 0。

标签: excel excel-formula


【解决方案1】:

尝试在数组模式下使用INDEX

假设
数据在$G$9:$O$12
行标签 (A..D) 在 $F$9:$F$12
$G$8:$O$8中的列标签

=IFERROR(INDEX($G$9:$O$12,MATCH($A$1,$F$9:$F$12,0),MATCH($B$1,$G$8:$O$8,0)),0)

这样做的好处是它不依赖于列标题是按升序排列的整数。

【讨论】:

    【解决方案2】:

    假设你的表格存储在Sheet2的左上角,那么你可以在单元格C1中使用如下公式:

    =IFERROR(VLOOKUP($A$1,Sheet2!$A$1:$J$5,$B$1+5,FALSE),0)
    

    VLOOKUP 函数查找所需字母所在的行(如A1 中给出的)。如果找到,它将返回由B1 的内容指示的列中的值,并添加5 以转置为正确的值。 FALSE 参数表示查找应该进行完全匹配。

    如果找不到该值,包裹在VLOOKUP 周围的IFERROR 将负责插入0

    我分享了@98​​7654323@,Sheet1 上的公式和Sheet2 上的表格。

    【讨论】:

    • 有没有办法阻止它返回标签?如果在 B1 处输入 -4,则返回“A”或“B”等,这会导致电子表格上的其他计算出错。
    • Nvm,我只是扩展了表格并通过增加 B1 中的 +5 来补偿。感谢您的回答!
    • 不客气。我没有考虑输入-4的异常情况。您可以将表达式 $B$1+5 替换为 IF($B$1>-4,$B$1+5,-1)
    • 此外,您可以在单元格 B1(以及 A1)中使用下拉列表来避免错误输入。例如,参见this tutorial。那是关于“常规”Excel,但它在 Google 电子表格中的工作原理基本相同。
    • 下拉列表是个好主意,除了在我的情况下,代表索引的单元格也是一个公式。感谢您的所有帮助!
    【解决方案3】:

    您可以使用VLOOKUP。例如,如果您将表格放在 A5 处,则将 C1 的公式如下:

    =VLOOKUP(A1,A5:J9,B1+5,FALSE)
    

    A5:J9 是您的查找表;您可以将其移动到任何地方,甚至在另一张纸上)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多