【问题标题】:Is there a way to INDEX / ARRAY certain multiple (non adjacent) columns from a range?有没有办法从一个范围内索引/排列某些多个(非相邻)列?
【发布时间】:2021-04-28 12:15:56
【问题描述】:

我有一个计算和过滤的范围,可以产生一百多列。不过我只想展示一小部分。

=INDEX(FILTER(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1NLj6NBgU2z2V2ZKjr6-tRjITpYU9E5XOoklqTCEFrPo","Database!$B$2:$JT$1943")
,
(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1NLj6NBgU2z2V2ZKjr6-tRjITpYU9E5XOoklqTCEFrPo",Tracker!B15)=Tracker!B16)
+
(IMPORTRANGE("https://docs.google.com/spreadsheets/d/1NLj6NBgU2z2V2ZKjr6-tRjITpYU9E5XOoklqTCEFrPo",Tracker!B15)=Tracker!B15))
,,7)

这个公式看起来很复杂很长,但它只是一个标准过滤器,有两种可能的正确解决方案——我只是从另一张表中提取数据。它根据变量过滤掉超过 1400 行。然后在该过滤范围之外,它为所选列编制索引。

它目前显示第 7 列,但我正在寻找它显示第 7、255、261、256、266、262 列。按此顺序。 p>

有没有办法做到这一点?我环顾四周,似乎找不到语法。很高兴使用完全改变原始公式的解决方案,但请记住,我希望最终在整个 INDEX 公式上使用 SORT 函数。

提前致谢。

可玩的示例表;

https://docs.google.com/spreadsheets/d/1gj1E2lLPOz-kbGw4qB-fx9VhefN1vFbEiQHY57NaNSo/edit?usp=sharing

【问题讨论】:

  • 我建议将第一个 importrange 包装在 query() 函数中,并在“where-clause”中设置条件。这也将允许您对结果进行排序。 LINK.
  • 您能否举例说明检索特定列的 QUERY 语法?我不太熟悉 QUERY 语法。
  • 您分享的信息中有很多未知数。例如:Tracker!B15 中有什么(第二个和第三个导入范围的第二个参数。最好是共享您的电子表格副本(删除敏感数据),以便我们更好地了解您想要实现的目标。
  • 好的,谢谢。我已经更新了一个示例副本表的链接。公式中的一些单元格引用已更改,但仍从原始数据库表中提取。
  • B15 是命名范围吗?我希望 sheetname + range 作为 importrange 的第二个参数?

标签: arrays google-sheets indexing google-sheets-formula multiple-columns


【解决方案1】:

在标签“JPV_HELP”中,我在单元格 C3 中输入

=IF($B$15="None","-",
QUERY(
IMPORTRANGE(
"https://docs.google.com/spreadsheets/d/1NLj6NBgU2z2V2ZKjr6-tRjITpYU9E5XOoklqTCEFrPo",
"Database!$B$2:$JT$1943"), 
"Select Col7, Col255, Col261, Col256, Col266 , Col262 
where Col266 matches '"&textjoin("|", 1, B15:B16)&"'", 1)
)

如果您想按特定列排序,可以将其包含在查询中。

"Select Col7, Col255, Col261, Col256, Col266 , Col262 
where Col266 matches '"&textjoin("|", 1, B15:B16)&"' order by Col7 asc"

使用 'desc' 而不是 'asc' 来进行降序排序。

看看这是否适合你?

【讨论】:

  • 效果很好!非常感谢。有没有办法使这种排序添加动态化?所以我可以更改列以使用下拉列表进行排序?
  • 当然你可以“按 Col7 排序”&IF(B22, "asc", "desc") "。另请参阅我应用相同逻辑的电子表格中的公式。
  • 刚刚对它进行了一些调整,如果我想将 B:15 中的过滤器更改为工业,恐怕它不起作用。或交换等。我认为这是由于“Col266 匹配的地方”约束。因为那是数据库中的“扇区”命名范围。有没有办法让“ColX 匹配的地方”动态。因此,如果 B:15 显示“Industry”,它将显示“Col262 匹配的位置”。如果有帮助 Col:262=Industry,266=Sector,256=Currency,261=Market。让我知道是否可能,并感谢您迄今为止的帮助
  • 应该可以的。我试图在公式中添加它。看看有没有帮助?
  • 现在就是这样。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多