【问题标题】:Turning formula into ArrayFormula Part2将公式转换为 ArrayFormula Part2
【发布时间】:2019-10-05 09:04:27
【问题描述】:

从这个问题开始 Turning formula into ArrayFormula

我未能明确说明值单元格也可能包含多个 CSV 格式的值。我尝试将其调整为:

=ARRAYFORMULA(IF(LEN(A4:A), IFERROR(VLOOKUP(SPLIT(A4:A,","), 
 QUERY(TRIM(TRANSPOSE(SPLIT($B$1, ","))), 
 "select Col1,count(Col1) group by Col1", 0), 2, 0), 0), ))

但没有运气。测试表在这里。 https://docs.google.com/spreadsheets/d/12xATTwuc-e6kXn_OF2Uibg6EgtSGbInI6Q_-vueknXg/edit#gid=0

我的原始公式在 B4 中,它有效但需要复制下来,这是我想要避免的。

【问题讨论】:

  • A4 中可以有多少个 CSV 值?
  • 不幸的是几乎没完没了

标签: google-sheets array-formulas google-sheets-formula google-sheets-query gs-vlookup


【解决方案1】:
=ARRAYFORMULA(IFERROR(VLOOKUP(A4:A, QUERY({QUERY(TRIM(SPLIT(TRANSPOSE(SPLIT(
 QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A4:A), "♠"&A4:A&"♦"&TRIM(IFERROR(
 SPLIT(A4:A, ","))), )), , 999^99)), , 999^99), "♠")), "♦")), "select Col1", 0),
 ARRAY_CONSTRAIN(IFERROR(VLOOKUP(QUERY(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(
 QUERY(TRANSPOSE(IF(LEN(A4:A), "♠"&A4:A&"♦"&TRIM(IFERROR(SPLIT(A4:A, ","))), ))
 , , 999^99)), , 999^99), "♠")), "♦")), "select Col2", 0), QUERY(IFERROR(VLOOKUP(
 QUERY(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A4:A),
 "♠"&A4:A&"♦"&TRIM(IFERROR(SPLIT(A4:A, ","))), )), , 999^99)), , 999^99), "♠")), "♦")),
 "select Col2", 0), QUERY(TRIM(TRANSPOSE(SPLIT(B1, ","))), 
 "select Col1,count(Col1) group by Col1", 0), {1, 2}, 0)), 
 "select Col1,sum(Col2) group by Col1", 0), 2, 0), 0), COUNTA(QUERY(TRIM(SPLIT(
 TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(LEN(A4:A),
 "♠"&A4:A&"♦"&TRIM(IFERROR(SPLIT(A4:A, ","))), )), , 999^99)), , 999^99), "♠")), "♦")),
 "select Col1", 0)), 1)}, "select Col1,sum(Col2) group by Col1" ,0), 2, 0)))

【讨论】:

  • 哇。现在这是一个公式!谢谢玩家0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
  • 1970-01-01
  • 2017-08-24
  • 2019-10-11
  • 1970-01-01
  • 2020-06-25
  • 2017-11-30
相关资源
最近更新 更多