Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用ArrayFormula从一个范围中多次查找相同的值_Arrays_Google Sheets_Google Sheets Formula_Transpose_Array Formulas - Fatal编程技术网

Arrays 如何使用ArrayFormula从一个范围中多次查找相同的值

Arrays 如何使用ArrayFormula从一个范围中多次查找相同的值,arrays,google-sheets,google-sheets-formula,transpose,array-formulas,Arrays,Google Sheets,Google Sheets Formula,Transpose,Array Formulas,我有这个范围……A1:D5 我想查找b=salary的行,并将它们放在一个新表中。 这一部分相当简单,可以使用查询、筛选、索引/匹配、vlookup和/或{array}以多种方式完成 我遇到的问题是,我希望初始结果重复可变次数。例如,如果我想搜索B=salary的所有行,并且我想在新表中重复该结果3次,我希望它看起来像这样 我已经使用上述所有函数和技术尝试了这一点,并且只有在将它们与ArrayFormula结合使用时,我才能获得显示的第一行 我尝试过的一些方法如下 =ARRAYFORMULA(I

我有这个范围……A1:D5

我想查找b=salary的行,并将它们放在一个新表中。 这一部分相当简单,可以使用查询、筛选、索引/匹配、vlookup和/或{array}以多种方式完成

我遇到的问题是,我希望初始结果重复可变次数。例如,如果我想搜索B=salary的所有行,并且我想在新表中重复该结果3次,我希望它看起来像这样

我已经使用上述所有函数和技术尝试了这一点,并且只有在将它们与ArrayFormula结合使用时,我才能获得显示的第一行

我尝试过的一些方法如下

=ARRAYFORMULA(INDEX ('Employees'!A2:D5, MATCH("salary", 'Employees'!B2:B, 0)))

=ARRAYFORMULA(VLOOKUP("salary",Employees!B2:D, {1,2,3}, FALSE))

=ARRAYFORMULA(QUERY('Employees'!A2:D, "Select * where B = 'salary'", 0))

=ARRAYFORMULA(TRANSPOSE(QUERY(TRANSPOSE(QUERY(Employees!$A$2:$D, "SELECT * WHERE B = 'salary'", 0 )),"SELECT Col"&((row(J9:J30)-1)-(ROUNDDOWN((row(J9:J30)-1)/3,0)*3))+1&"",0)))

以下是可以使用的公式:

= iferror(arrayformula 
  (
    split ( 
      transpose (
        split (
          substitute ( 
            textjoin (
               "%",true, 
               if (
                    sequence(3)=sequence(3),
                    textjoin("%",false,filter({L2:N5,O2:O5&"$"} ,M2:M5="Salary"))
               )
            )
            ,"$%","$"
          )
          ,"$",true,false
        )
      )
      , "%", true,false
    )
  ),"")
数据在L1:O5范围内,Sequence3是重复结果的次数,符号应更改为特殊符号,以避免与数据冲突

=ARRAYFORMULA(SUBSTITUTE(SPLIT(TRANSPOSE(SPLIT(REPT(TEXTJOIN("♦", 1, 
 FILTER({"♥♠"&A2:A, B2:D}, B2:B="salary")), 3), "♥")), "♦"), "♠", ))

请尝试使用文本连接和拆分作为补充这些都是很好的解决方案,谢谢!。我唯一的补充问题是如何为数组的值添加前缀?Textjoin作为一个除虫剂添加到了结尾,但我不能为我的生命添加到前面。例如,我想向{003%salary%bi-weekly%50000;002%salary%bi-weekly%50000}中的每个数组字符串值添加hi,以获得此结果{hi%003%salary%bi-weekly%50000;hi%002%salary%bi-weekly%50000}请尝试:=ArrayForMulayFormulaSubstituteSplitTransposeSplitRepttextJoin♦, 1、过滤器{♥♠嗨&A2:A,B2:D},B2:B=薪水,3,♥, ♦, ♠, 刚刚想到的=JOINhi,{,1,2,3,4},{3,4,5,6}….似乎很管用。有更好的解决方案吗?这两个都是很好的解决方案,谢谢!。我唯一的补充问题是如何为数组的值添加前缀?Textjoin作为一个除虫剂添加到了结尾,但我不能为我的生命添加到前面。例如,我想在{003%salary%bi-weekly%50000;002%salary%bi-weekly%50000}中的每个数组字符串值中添加hi,以获得这个结果{hi%003%salary%bi-weekly%50000;hi%002%salary%bi-weekly%50000}将{L2:N5,O2:O5&$}更改为{leftL2:L5,0&hi,L2:N5,O2:O5&$}