使用多组复选框过滤数据以确定标准

问题描述 投票:0回答:1

我正在尝试使用多组复选框来过滤数据来确定标准。

这是我正在处理的电子表格。以下是每张纸的一些注释:

  • 仪表板:我希望使用四组标准来使用复选框进行过滤,包括日期范围
  • 列表:公式填充的位置(单元格 A2
  • 历史记录:我尝试过滤的数据集。我有隐藏的行,但我没有将其用作标准。

如有任何帮助,我们将不胜感激!

我目前正在尝试 xmatch 函数,它适用于一组复选框(下面是我尝试过的公式)。然而,尝试使用一组单独的复选框范围应用第二个 xmath 函数时,一切都会变得不稳定并计算不应该的东西。

=sort(filter(History!A:Z,History!B:B >= Dashboard!C4,  History!B:B <= Dashboard!C5,  xmatch(History!T:T,filter(Dashboard!O8:O57,Dashboard!N8:N57) )),2, true)

这是我尝试使用多个的公式

=sort(filter(History!A:Z,History!B:B >= Dashboard!C4,  History!B:B <= Dashboard!C5,  xmatch(History!A:A,filter(Dashboard!F4:F5,Dashboard!E4:E5), xmatch(History!Z:Z,filter(Dashboard!I4:I6,Dashboard!H4:H6) )),2, true)

google-sheets google-apps-script google-sheets-formula formula
1个回答
0
投票

添加过滤按钮

在看到示例文件的设置后,我想建议为过滤器功能添加另一个按钮,因为我意识到检查/取消选中复选框并填写结束日期和开始日期需要一些时间(这使得对于这种情况,简单的触发器效率较低)。您可以为此使用以下脚本:

function filter() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var shFilter = ss.getSheetByName("Dashboard");
  var startDate = shFilter.getRange("C4").getValue();
  var endDate = shFilter.getRange("C5").getValue();
  var selectVersion = shFilter.getRange("E4:F5").getValues().filter(x => x[0]).map(y => y[1]);
  var selectNetwork = shFilter.getRange("H4:I6").getValues().filter(x => x[0]).map(y => y[1]);
  var selectAudience = shFilter.getRange("K4:L10").getValues().filter(x => x[0]).map(y => y[1]);
  var selectStates = shFilter.getRange("N8:O57").getValues().filter(x => x[0]).map(y => y[1]);
  var rawData = ss.getSheetByName("History").getDataRange().getValues();
  var out = rawData.filter(a => (a[1] >= startDate) * (a[1] <= endDate) * (selectVersion.includes(a[0])) * (selectNetwork.includes(a[25])) * (selectAudience.includes(a[22])) * (selectStates.includes(a[19])))
  var shOut = ss.getSheetByName("List");
  shOut.getRange(2, 1, shOut.getLastRow() - 1, shOut.getLastColumn()).clearContent();
  ss.getSheetByName("List").getRange(2, 1, out.length, out[0].length).setValues(out);
}

注意: 我很想在这篇文章中显示输出,但我认为您提供的示例数据包含敏感信息。

参考文献

© www.soinside.com 2019 - 2024. All rights reserved.