【问题标题】:Filter two column array based on common values in one column根据一列中的公共值过滤两列数组
【发布时间】:2020-10-02 22:23:42
【问题描述】:

我最终会尝试创建一个包含 1-5 名共同选定球员的所有球队的列表。如果只选择了一名球员,那么该球员所在的所有球队都会出现。但如果选择了 2 个或更多玩家,则所有玩家都需要有一个共同的团队才能显示。如果只有三分之二的玩家共享一个团队,它就不会出现。

我可以将我的列表筛选为我选择的球员以及他们所在的球队,但是,我想将其范围缩小到他们彼此共有的球队。播放器不需要显示,我只是显示它以更好地了解我看到的数据。

如果我的搜索条件是:

Player 1
Player 2
Player 3

使用这个公式...

=FILTER({data!C2:C,data!B2:B},COUNTIF(A2:A6,data!C2:C))

我明白了……

Player 1    Team A
Player 2    Team A
Player 3    Team A
Player 1    Team B
Player 3    Team B
Player 2    Team C
Player 3    Team C
Player 2    Team D
Player 2    Team E
Player 3    Team E
Player 1    Team E

然后我想找到共同的团队。所以...

Player 1    Team A
Player 1    Team E
Player 2    Team A
Player 2    Team E
Player 3    Team A
Player 3    Team E

我认为像 this 这样的东西会起作用

=FILTER({data!C2:C,data!B2:B},
  COUNTIF(A2,data!C2:C),
  COUNTIF(A3,data!C2:C),
  COUNTIF(A4,data!C2:C),
  COUNTIF(A5,data!C2:C),
  COUNTIF(A6,data!C2:C)
)

我一直盯着这个看,直到我感到眼花缭乱,我可能只是忽略了一些简单的事情,但我似乎无法弄清楚。

这里是my sheet,如果有人愿意看一看。谢谢!

【问题讨论】:

  • 也许你可以更好地解释你想要的结果。我目前不明白你的结果以及为什么 C 队和 E 队被排除在外。
  • 你是对的。我没有很好地解释自己,我忘记在我的示例中包含我用来获得结果的标准。幸运的是,@kishkin 能够理解我的意思。

标签: google-sheets filter google-sheets-formula


【解决方案1】:

这个适合你吗?

=FILTER(
  FILTER(
    {data!C2:C, data!B2:B},
    IFNA(MATCH(data!C2:C, A2:A6, 0))
  ),
  COUNTIF(
    FILTER(
      data!B2:B,
      IFNA(MATCH(data!C2:C, A2:A6, 0))
    ),
    FILTER(
      data!B2:B,
      IFNA(MATCH(data!C2:C, A2:A6, 0))
    )
  ) = COUNTA(A2:A6)
)

FILTER 部分:

当然可以对封装的QUERYs 做出类似的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 2021-11-10
    • 2021-10-17
    • 2023-03-28
    • 2019-03-01
    相关资源
    最近更新 更多