我的这个公式适用于Google表格:
=IF(ISERROR(
INDEX(Students!$A:$H,SMALL(IF(Students!$G:$G=$B$1,ROW(Students!$G:$G)),ROW(1:1)),C$1)),"DELETE",
INDEX(Students!$A:$H,SMALL(IF(Students!$G:$G=$B$1,ROW(Students!$G:$G)),ROW(1:1)),C$1))
它返回一个基于B1的可拖动学生列表(C1选择列)
但是,当我从Google表格下载.xlsx并在MS Excel中打开时,它不会返回学生。它返回1行(标题),没有别的。 是什么导致它?
答案 0 :(得分:2)
简短的回答是,您必须将其作为Excel中的数组公式(此处显示一些虚拟数据)
但你刚刚获得第一行的原因不太明显(无论如何对我来说)
当你有一个范围并在公式中使用它时,如= G:G,Excel会根据你放置公式的位置选择一个不同的单元格(我忘记了这个机制被调用了什么?)所以在这种情况下公式为B2从学生中获得6个忠诚度!G2和IF语句给出TRUE,你得到最小的(行)1,只有1,所以你得到第一行。如果你试图获得第二小的,你最终会出错。
答案 1 :(得分:2)
这是一个数组公式,Google可以在不明确使用 ARRAYFORMULA
的情况下识别,而Excel则不然。您需要使用 CTRL 输入公式
+ SHIFT + 输入。如果你做得正确,公式应该自动括在花括号 {
}
中。