DAX allexcept
时间: 2024-06-07 14:12:15 浏览: 136
DAX中的ALLEXCEPT函数是一种用于在计算时保留指定列的筛选器,同时移除其他列的筛选器的函数。该函数的作用是返回一个表,该表包含指定列的所有唯一值,并且移除了其他列的筛选器。[1]
ALLEXCEPT函数的语法如下:
ALLEXCEPT(TableName, Column1, Column2, ...)
其中,TableName是要操作的表的名称,Column1、Column2等是要保留的列名。
使用ALLEXCEPT函数可以在计算时保留某些列的筛选器,并忽略其他列的筛选器。这样可以在计算时只关注指定列的数据,并且提供更灵活的计算方式。
需要注意的是,ALLEXCEPT函数只适用于表达式的筛选器上下文,而不适用于行上下文或列上下文。此外,ALLEXCEPT函数还可以和其他DAX函数一起使用,例如IF函数来进行条件判断。
总之,DAX中的ALLEXCEPT函数是一种用于在计算时保留指定列的筛选器的函数,可以提供更灵活的计算方式。
相关问题
在Excel Power Query中如何实现按照Dea 分组的来计算线性回归=INDEX(LINEST(H6:H15,(G6:G15)^{1,2,3}),1,1) 如何用DAX实现
在Excel Power Query中,如果你想按Dea分组并对每个组内的数据进行线性回归,首先你需要创建一个数据透视表或者使用Power Query的Grouping和M-functions。这里假设你的数据源是在H6:G15范围内,Dea字段在某个列。以下是步骤:
1. **打开Power Query编辑器**:
- 右键点击工作表,选择"从表格"或"从数据源"开始数据探索。
- 将你的数据导入到查询编辑器中。
2. **分组并计算线性回归**:
- 添加一个新的计算列,使用`Mapply`函数来进行分组:
```sql
=Mapply(
LINEST,
{H6:H15}, {G6:G15} ^ {1, 2, 3},
List.Distinct(Col_Dea),
List.Distinct(Col_Date),
List.Distinct(Col_Weight),
List.Distinct(Col_Sample)
)
```
- `Col_Dea`、`Col_Date`、`Col_Weight`和`Col_Sample`分别替换为你的Dea、日期、权重或其他可能影响线性的列名。
3. **提取斜率**:
- 通过索引来选取第一行(即斜率):
```sql
=INDEX(Table, each _, 1)
```
- 将此表达式添加到新的列中,并命名为"Regression_Slope"或者其他你喜欢的名字。
注意,由于Power Query不直接支持DAX(数据模型表达语言),你需要将以上步骤转换成DAX,但这通常是在Power BI的工作区里完成。一旦在Power Query中准备好数据,你可以导出到报表或数据模型部分,然后在那里使用DAX公式。
在Power BI Desktop中,你可以创建一个新的计算列,类似上述的Mapply和INDEX,但在DAX环境中表达:
```dax
Regression_Slope =
VAR regressionResults =
CALCULATE(
LINEST('Table'[H], 'Table'[G] ^ {1, 2, 3},
ALL('Table'[Dea]),
ALL('Table'[Date]),
ALL('Table'[Weight]),
ALL('Table'[Sample])),
ALLEXCEPT('Table', 'Table'[Dea])
)
RETURN INDEX(regressionResults, 0, 1)
```
在这里,'Table'应该替换为你的实际表名。
阅读全文