Excel formula 如果满足某些条件,则使用公式将单元格值复制到另一张图纸

Excel formula 如果满足某些条件,则使用公式将单元格值复制到另一张图纸,excel-formula,google-sheets,Excel Formula,Google Sheets,我试图写一个公式,这样我就可以在另一张表中根据某些标准创建一个子列表。 在sheet1 A和B中有两列。仅当A中的相应单元格满足某些条件时,我才想将值从单元格B复制到sheet2中的新列表。请说明如何操作。您不能使用公式将单元格值复制到另一个单元格值,因为它们只能影响写入的单元格值(通常)… 但是,您可以在Sheet2中编写公式,根据条件从Sheet1中提取数据… 例如,数组公式(使用Ctrl+Shift+Enter输入): 在本例中,我使用的条件是“列A中的值包含字母“o”-不区分大小写”。。

我试图写一个公式,这样我就可以在另一张表中根据某些标准创建一个子列表。
在sheet1 A和B中有两列。仅当A中的相应单元格满足某些条件时,我才想将值从单元格B复制到sheet2中的新列表。请说明如何操作。

您不能使用公式将单元格值复制到另一个单元格值,因为它们只能影响写入的单元格值(通常)…
但是,您可以在Sheet2中编写公式,根据条件从Sheet1中提取数据…
例如,数组公式(使用Ctrl+Shift+Enter输入):

在本例中,我使用的条件是“列A中的值包含字母“o”-不区分大小写”。。。让我从里到外解释

  • ISERROR(FIND(“o”,LOWER(…))
    会给出
    FALSE
    如果值有“o”,则
    TRUE
  • 我们正在处理单元格数组
    Sheet1,而不是只给出一个值$A$1:$A$4
    (可以根据需要进行扩展)-因此这为我们提供了一个
    TRUE
    FALSE
    值数组
  • IF(ISERROR(…),9999,ROW(…)
    意味着如果没有'o',我们将得到值9999,否则我们将得到数组中单元格的行号-因此这给了我们一个混合了
    9999
    和行号的数组
  • SMALL(…,ROW())
    让我们从数组中选择其中一个值-在本例中,项目按大小顺序排列,我们使用
    ROW()
    作为计数器(即在Sheet2!A1-
    ROW()
    为1,我们从数组中获得最小值)。。。如果我们有一个标题行,我们可以执行
    row()-1
    例如。。。实际上,我们是通过Sheet1中符合我们条件的排序行号列表进行索引
  • 索引(Sheet1!$B$1:$B$4,…)
    将给出Sheet1中B列的值,该值与我们在匹配行列表中的位置有关
  • 有时我们有9999(对于所有不符合条件的单元格-这些单元格用
    SMALL
    排序到列表的末尾),因此
    索引将给我们一个错误。。。索引超出范围。所以我们可以用一个空白来代替它
希望这有点道理!祝你好运记住用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())),"")