【问题标题】:Select specific row and range of rows from specific columns with query使用查询从特定列中选择特定行和行范围
【发布时间】:2020-01-21 17:48:15
【问题描述】:

我有以下电子表格:

|  |   A    |    B   |    C   |   D    |   E    |
| 1| Labels | Item 1 | Item 2 | Item 3 | Item 4 |
| 2| name   |   yes  |  no    |  yes   |  yes   |
| 3| price  |   yes  |  no    |  yes   |  yes   |
| 4| tag    |   yes  |  no    |  yes   |  yes   |
| 5| desc   |   yes  |  no    |  yes   |  yes   |
| 6| loc    |   yes  |  no    |  yes   |  yes   |
| 7| ref    |   yes  |  no    |  yes   |  yes   |
| 8| obj    |   yes  |  no    |  yes   |  yes   |
| 9| rand   |   yes  |  no    |  yes   |  yes   |
|10| rand2  |   yes  |  no    |  yes   |  yes   |
|11| rand3  |   yes  |  no    |  yes   |  yes   |
|12| rand4  |   yes  |  no    |  yes   |  yes   |

注意:1 到 12 和 A 到 E 不在工作表内

如何从ACE 列中选择第 1 行和第 5 到 10 行的范围以获得以下结果? :

|  |   A    |    C   |   E    |
| 1| Labels | Item 2 | Item 4 |
| 5| desc   |  no    |  yes   |
| 6| loc    |  no    |  yes   |
| 7| ref    |  no    |  yes   |
| 8| obj    |  no    |  yes   |
| 9| rand   |  no    |  yes   |
|10| rand2  |  no    |  yes   |

注意:我留下了 1, 5, 6, ..., 10 和 A,C,E 只是为了更好地理解输出。我不希望它们出现在我的数据中,我只希望工作表中的数据

我得到这样的东西适用于一系列行:SELECT A,C,E LIMIT 6 OFFSET 4,但我错过了第 1 行,无法找到如何在同一个查询中添加它。

【问题讨论】:

    标签: google-sheets google-sheets-formula google-sheets-query google-query-language


    【解决方案1】:

    尝试:

    =QUERY(A1:E; "select A,C,E limit 6 offset 3"; 1)
    

    【讨论】:

      【解决方案2】:

      如果您正在寻找使用 Google Script 的解决方案:

      如果要考虑的范围将由用户手动选择,您可能有兴趣使用getActiveRangeList()

      文档:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#getactiverangelist

      如果要考虑的范围是固定的并且可以集成到您的脚本中,您可能有兴趣使用getRangeList()

      文档:https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet#getrangelista1notations

      请注意,如果您想在脚本中迭代 rangeList,您还需要使用 getRanges() 检索列表的不同范围。 示例:

          var rangeList = ss.getActiveRangeList();
          var myRanges = rangeList.getRanges();
      
          for (i = 0; i < myRanges.length; i++) {
          ...
          }
      
      

      我希望这是有用的。 干杯

      【讨论】:

        【解决方案3】:

        有查询:

        =query(filter({row(A1:A),A1:E&""},A1:A<>""), "Select Col2, Col4, Col6 where Col1=1 or Col1>=5 and Col1<=10")
        

        带过滤器:

        =filter({A1:A & "",C1:C&"", E1:E& ""},((row(A1:A)=1)+(row(A1:A)>=5)*(row(A1:A)<=10))>0)
        

        【讨论】:

          猜你喜欢
          • 2018-09-10
          • 2012-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多