当我使用时,为什么拆分公式不会扩展到整个列=arrayformula(split(input!G2:G, ","))?
我得到的结果只是输入!G2单元格,而不是G列中的其余单元格.其他公式=arrayformula(find(",", input!G2:G))似乎功能和扩展没有问题.
我正在使用VBA,我需要插入一个数组公式(如果我手动编写它,我会按Ctrl+ Shift+ Enter而不仅仅是Enter).当我像普通公式一样插入它时,它不起作用,当我把它放在它周围时... ...使用VBA编写该公式的正确方法是什么?
公式是这样的:
=INDEX(subset!R1C1:R2472C10,MATCH(1,(RC1=subset!C1)*(RC2=subset!C2)*(RC5=subset!C5)*(RC6=subset!C6),0),10)
Run Code Online (Sandbox Code Playgroud) 当数组公式的结果是数字时,我发现通常很容易找到合适的方法将数组折叠成单个结果.但是,当数组公式的结果是文本时,我发现很难以提供单个所需结果的方式操作公式.简而言之,有没有一种方法可以操作我忽略的文本结果数组?请参阅此问题的底部,了解无法使用的最终所需公式,并请求解决方案.
*编辑 - 再次阅读之后,我可以交替总结我的问题:有没有办法从'公式数组结果'访问多个文本元素,而无需单独选择(例如:使用INDEX)?
数组公式工作的示例,其中结果数组是数字值
(1)示例1:假设列A行1-500是产品ID的列表,格式为xyz123,列B行1-500表示该产品的总销售额.如果我想查找具有最高销售额的产品的销售额,其中ID的最后3位数字高于400,我可以使用像这样的数组公式(使用CTRL + SHIFT + ENTER而不是ENTER确认):
=MAX(IF(VALUE(RIGHT(A1:A500,3))>400,B1:B500,""))
Run Code Online (Sandbox Code Playgroud)
(2)示例2现在假设列B包含产品名称而不是Sales.我现在想简单地返回第一个名称,该名称与产品ID的最后3个数字的标准匹配> 400.这可以按如下方式完成:
=INDEX(B1:B500,MIN(IF(VALUE(RIGHT(A1:A500,3))>400,ROW(A1:A500),"")))
Run Code Online (Sandbox Code Playgroud)
这里,我做了一点操作,所以公式[IF(RIGHT(A1:A500,3 ...)的实际数组部分返回一个值结果[cellsA1:A500的ROWs,其中最后3位是因此我可以使用MIN来显示匹配的第一个ROW#,然后我可以在常规INDEX函数中使用该折叠结果.
(3)示例3作为最后一个示例,请参阅此处对类似问题的讨论[比以下摘要示例更深入,与此问题没有直接关系]:https://stackoverflow.com/a /五百○九万○二十七分之三千一百三十二万五千九百三十五
现在假设您需要所有产品名称的列表,其中产品ID的最后3位数字> 400.据我所知,这不可能在单个Cell中完成,必须通过将每个单独的结果放在后续单元格上来完成.例如,可以在C1中放置以下公式并向下拖动10行,然后显示前10个产品名称,其中产品ID的最后3位数> 400.
=INDEX($B$1:$B$500,SMALL(IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($A$1:$A$500),""),ROW()))
Run Code Online (Sandbox Code Playgroud)
数组公式不起作用的示例,其中结果数组是文本值
现在假设我想在示例3中获取结果,并对它们执行一些文本操作.例如,假设我想将它们连接成一个单独的文本字符串.下面的方法不起作用,因为concatenate不会将这样的结果数组作为可接受的参数.
=CONCATENATE((IF(VALUE(RIGHT($A$1:$A$500,3))>400,ROW($B$1:$B$500),"")))
Run Code Online (Sandbox Code Playgroud)
所以问题是:有没有人知道如何使这最后一个公式起作用?或者,如何使一个公式工作,它接受一个文本结果数组,并将其转换为"可用范围"[因此它可以插入上面的连接],或者可以立即使用文本参数进行操作[例如mid ,搜索,替代等] 现在,我能看到的唯一方法是使用上面的示例3,然后进一步说,例如,Concatenate(C1,C2,C3 ...... C10).
=ARRAYFORMULA(IF(ROW(B:B)=1, "Share Price", IF(ISBLANK(B:B), "", googlefinance(B:B, "price"))))
Run Code Online (Sandbox Code Playgroud)
我试图让第 1 行(我的标题行)有一个名称,然后在其下方,如果 B 列中输入了有效的股票代码,则让 google Finance 获取该股票的价格。然而,我在“股价”下方的所有单元格中都得到了“N/A”,并且不明白为什么。
请帮助。
google-finance google-sheets google-apps-script array-formulas google-sheets-formula
我有一个Excel公式从列中读取数据.该列中的数据有时是类似日期的格式,例如"10-11".尽管我确保列是文本格式的 - 并且所有值都以纯文本形式显示,而不是重新解释为日期 - 但公式基本上将它们重新解释为引用中的日期.
我需要一种方法来强制公式的单元格引用将单元格解释为文本.我试过TEXT(A1,"@"),但它不起作用 - 它给出了日期的数值.
通常不需要床单的帮助,但我认为我的大脑正在冒这么多的思考.
尝试使用数组公式填充整个列,该公式根据另外两列的条件对单独列中的值求和.如果这听起来很奇怪,请查看此示例表.

发票有数字.客户付款具有"进入"银行帐户以及与其关联的发票编号,因此我知道哪个付款对应于哪个发票.有时付款是分段付款.我想将每张发票和单独账户的所有款项汇总.我知道如何使用sumifs来做到这一点.我想要的技巧是在第一个单元格中使用一个数组公式.感谢所有帮助.
我有一张桌子:
A | B | C
BEN | MOSKOW | YES
ANTON | IRKUTSK | NO
VIKTOR | PARIS | YES
BEN | PARIS | YES
ANTON | TORONTO | NO
DON | TORONTO | YES
ANNA | IRKUTSK | YES
BEN | MOSKOW | NO
Run Code Online (Sandbox Code Playgroud)
并尝试了一个公式:
=UNIQUE(query(A:C; "Select A,B,C where A contains 'BEN' OR A contains 'ANTON' order by A"))
Run Code Online (Sandbox Code Playgroud)
和一个数组公式:
=arrayformula(UNIQUE(query(A:C; "Select A,B,C where A contains 'BEN' OR A contains 'ANTON' order by A")))
Run Code Online (Sandbox Code Playgroud)
但结果在列中:
ANTON | IRKUTSK …Run Code Online (Sandbox Code Playgroud) 如何在数组公式中使用嵌套的"AND"在"IF"内部工作?
我将我的问题减少到以下示例:
注意:上面的图片已经更新,包括数组公式花括号
在右上角,我们有L3("颜色")和L4("形状")的搜索条件.在左侧,D列包含项目列表中颜色和形状的工作匹配公式.第一个表显示匹配公式在不使用数组公式的情况下正常工作.
第二个表显示了与颜色匹配的数组公式.
第三个表显示了与形状匹配的数组公式.
在右边是我尝试在数组公式中使用这两个条件,通过将它们与AND组合.
如果颜色列中的值与颜色标准(L3)匹配,并且形状列中的值与形状标准(L4)匹配,那么我想看到"MATCH!".
我找到了一个解决方法:连接值和标准,然后在单个IF中匹配它们.我觉得应该有一个更好的方式...就像AND和预期的一样工作!
注意: 下面的许多答案都能正常工作,但不能作为数组公式,这就是这个问题的具体内容.我看了看原来的问题并意识到我忘了在数组公式示例中显示花括号.我已修复图像以显示它们.对困惑感到抱歉.
回答这些问题的关键是写一些作为数组公式的东西,在按公式输入单元格后按CTRL + SHIFT + ENTER输入.Excel将自动添加花括号以指示它是一个数组公式.
相对初学者在excel/google工作表中使用公式,我在弄清楚如何使用数组公式来比较不同行中的单元格但谷歌工作表中的相同列(在我的情况下,我怎么做= IF(A3 = A2,dothis,elsedothis)作为一个数组公式.如果有人有一个不同于数组公式的解决方案来自动填充公式,我也会感兴趣.
具体内容:
我有一个参与者列表,他们已经完成了一项实验,其中一些已经多次完成.通过一长串参与者和一些参与者的多个条目,很难看到一个参与者的信息在哪里结束而下一个参与者的信息开始.所以我想要的是根据参与者的数量交替灰色和白色阴影中的行(即所有001的灰色条目,所有002的条目为白色,003为灰色,依此类推).为此,我使用一个公式在右侧放入一列,检查上面一行中的参与者编号是否相同,如果没有,则添加一个(我想用它来获取参与者数量)稍后的).这就是数据集的样子,我在右边包含了公式.
A B ... ... X
001 9/1/16 ... ... 1 (1)
001 10/1/16 ... ... 1 (=IF(A3=A2,X2,X2+1))
001 11/1/16 ... ... 1 (=IF(A4=A3,X3,X3+1))
002 9/2/16 ... ... 2 (=IF(A5=A4,X4,X4+1))
002 10/2/16 ... ... 2 (=IF(A6=A5,X5,X5+1))
003 10/5/16 ... ... 3 (=IF(A7=A6,X6,X6+1))
...
Run Code Online (Sandbox Code Playgroud)
这一切都很好,花花公子,但问题是,当我输入一个新行时,它不会自动填充公式,因此着色不会调整.我想每次输入新的参与者信息时我都可以重新调整公式,但这很乏味,而且我不是唯一一个使用它的人,所以它会很快搞砸了.从我的查看,arrayformula是我应该使用的.但是如果使用arrayformula,则必须将列作为一个整体引用.有人有主意吗?