我正在尝试编写一个公式,以便我可以根据特定条件在另一个工作表中创建子列表。 我在sheet1 A&中有两列。 B.只有当A中的相应单元满足某些条件时,我才想将单元格B中的值复制到sheet2中的新列表。请告诉我们该怎么做。
答案 0 :(得分:2)
您不能使用公式将单元格值复制到另一个公式,因为它们只能影响它们所写的单元格值(通常)...
但是,您可以在Sheet2中编写公式,以根据条件从Sheet1中提取数据...
例如,数组公式(使用 Ctrl + Shift + Enter 输入):
=IFERROR(INDEX(Sheet1!$B$1:$B$4,SMALL(IF(ISERROR(FIND("o",LOWER(Sheet1!$A$1:$A$4))),9999,ROW(Sheet1!$A$1:$A$4)),ROW())),"")
在这个例子中,我使用条件“A列中的值包含字母'o' - 不区分大小写”...让我从内到外解释......
ISERROR(FIND("o",LOWER(...)))
会向我们FALSE
,否则为TRUE
Sheet1!$A$1:$A$4
(可以根据需要进行扩展),而不仅仅是给出一个值 - 所以这给了我们一个TRUE
和{{1值} FALSE
表示如果没有'o',我们将得到值9999,否则我们得到数组中单元格的行号 - 所以这给了我们一个{{1的混合数组'和行号IF(ISERROR(...),9999,ROW(...))
让我们从数组中挑选出其中一个值 - 在这种情况下是大小顺序的项目,我们使用9999
作为我们的计数器(即在Sheet2!A1 - {{ 1}}是1,我们从数组中得到最小的值)...如果我们有一个标题行,我们可以做SMALL(...,ROW())
例如...实际上,我们通过排序的行号列表索引Sheet1符合我们的条件ROW()
将向我们提供Sheet1中B列与我们在匹配行列表中的位置相关的值ROW()
排序到列表的末尾),因此ROW()-1
会给我们一个错误......指数超出范围。所以我们可以用空白替换它希望这有一定道理!祝好运!并记得使用 Ctrl + Shift + 输入 ...
输入数组公式