您可以将许多条件传递给Filter function,它会通过从您的数据源 (PortfolioApp) 返回满足所有这些条件的项目来工作。例如,您可以将表达式重写为:
SortByColumns(
Filter(
PortfolioAPP,
userddown.Selected.Value = CollectorName,
StartsWith(
TitanCompanyName,
SearchComp_1.Text),
StartsWith(
TitanCompanyContactName,
SearchContact_1.Text),
StartsWith(
Title,
SearchTicket.Text),
StartsWith(
ResolutionType,
ResoTypeDDown_1.Selected.Value)
),
"TotalDebtGBP",
Ascending)
如果您想添加另外两个条件(基于下拉列表和日期选择器),那么您可以再添加两个表达式:
SortByColumns(
Filter(
PortfolioAPP,
userddown.Selected.Value = CollectorName,
StartsWith(
TitanCompanyName,
SearchComp_1.Text),
StartsWith(
TitanCompanyContactName,
SearchContact_1.Text),
StartsWith(
Title,
SearchTicket.Text),
StartsWith(
ResolutionType,
ResoTypeDDown_1.Selected.Value),
TicketClosedDate = DatePicker1.SelectedDate,
AnotherColumn = YourOtherDropdown.Selected.Value
),
"TotalDebtGBP",
Ascending)
cmets 后更新:由于您的数据源是 SharePoint,因此当前似乎存在一个错误,即使用 SharePoint 列表进行基于日期的过滤不起作用。我不知道什么时候会解决这个问题,但您可以考虑一些解决方法。
第一个是在 SharePoint 中创建一个计算列,将日期列转换为文本列,表达式为 =TEXT(PlacementDate,"yyyy-MM-dd")。然后,您可以将其与日期选择器中的日期进行比较,如
Filter(PortfolioApp, PlacementDateText = Text(DatePicker1.SelectedDate, "yyyy-mm-dd"))
如果您的列表没有很多元素(最多 500-2000 行),这应该可以工作,因为计算列不支持 delegation。
但是,您还提到您有 >10k 行,因此之前的解决方法将不起作用。另一种可能的解决方法是使用另一个“常规”文本列来表示相同的日期值。您需要使用某种脚本来回填现有值,然后在每次添加/修改新行时使用流来更新该值。不理想,但至少在修复此错误之前会起作用。