【问题标题】:Print different text from the same variable in excel在excel中从同一个变量打印不同的文本
【发布时间】:2021-08-10 10:13:29
【问题描述】:

我在 excel / google 表格中有一个电子表格(下面的链接)

google sheet here

问题是:

有两列:1) 用于 id 和 2) 一些与 id 相关的文本

我想从另一个单元格中的相同 ID 号打印所有唯一文本(类似连接)。

谁能帮我做这件事?

我尝试过 vlookup 但不起作用。

假设的例子如下表

VAR1 VAR2 RESULT
A ONE
A TWO ONE,TWO
B THREE
B FOUR THREE,FOUR
C FIVE FIVE
D SIX SIX

【问题讨论】:

  • 您的文件被阻止,它显示 Unauthorized Error 401。此外,注意与 Google 表格不是同一个 Excel,所以我强烈建议只使用一个标签,而不是两个标签。此外,预期输出的示例会有所帮助。

标签: excel google-sheets


【解决方案1】:

这与您所需的解决方案实际上并不相同,但它会在 Var1 中生成一个不同的值列表,并从 Var2(按字母顺序)中生成相关的逗号分隔值,仅限 Google 表格:

=arrayformula(({A1:B1;to_text(split(regexreplace(flatten(split(textjoin(",",1,query(query(if(A2:A<>"",{char(9999)&A2:A&char(9998),B2:B,B2:B},),"select Col1,Min(Col2) group by Col1 pivot Col3",0),"where Col1 is not null",0)),char(9999))),",$",),char(9998)&",",0))}))

更新

由于textjoin 函数只能包含 50000 个字符,因此对公式进行压力测试会在大约 5000 多行后出现问题。

另一种解决方案是这样的(var 2 可以是文本或数字):

=arrayformula({A1:B1;regexreplace(substitute(query(substitute(split(flatten(trim(query(transpose(query(if(A2:A<>"",substitute({A2:A&char(9999),B2:B,B2:B}," ",char(9998)),),"select Col1,Min(Col2) group by Col1 pivot Col3",0)),"",9^9))),char(9999))," ",","),"where Col2 is not null",0),char(9998)," "),"^,",)})

它仍然适用于 15000 行。 Var 1 由介于 0001 和 1000 之间的 ID 组成。Var 2 最多有 10 个不同的选项:

【讨论】:

  • 是的很好,但我没有 4 个 ID。我有 10000 个?我必须进行哪些更改才能为我的所有 ID 工作?
  • 公式应该只适用于可用的内容。但是,我的测试表似乎只能处理 5774 行。限制可能是查询枢轴。我看看有没有别的办法。
  • 是否有等价的公式作为您对 excel 的答案?
  • 更新的解决方案。初始限制是 textjoin 函数只能处理 50000 个字符。
  • 以 Excel 格式?
【解决方案2】:

google-sheet 试试下面的公式-

=IF(A2<>A3,JOIN(",",FILTER($B$2:$B$7,$A$2:$A$7=A2)),"")

【讨论】:

  • 如果我有超过 2 个与来自 VAR1 的 id 相关的文本?例如 5 个文本?我希望打印独特的文本而不是所有文本。
  • 然后使用Unique函数=IF(A2&lt;&gt;A3,JOIN(",",UNIQUE(FILTER($B$2:$B$7,$A$2:$A$7=A2))),"")
  • 它不起作用,因为 id 有超过 2 次复制。因此,如果我自动填充 IF(A2A3) 例如在第 500-505 列中产生 NA。并且在过滤器函数的第二个条件中.
猜你喜欢
  • 2022-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 2018-08-09
  • 1970-01-01
  • 2013-10-08
  • 2021-12-19
相关资源
最近更新 更多