SUMMARIZECOLUMNS中的动态列选择

时间:2019-06-26 10:27:52

标签: powerbi dax

我要根据条件动态选择EVALUATE SUMMARIZECOLUMNS( IF( True(), Date[Year], Date[FiscalYear]), "Reference Date", STARTOFMONTH(Date[Date]) ) 中的列:

Date, Year, FiscalYear
2005-01-01, 2005, 2004/2005
2005-01-02, 2005, 2004/2005

对于像这样的数据集

DEFINE VAR

已经尝试过使用DISTINCT SELECTCOLUMNSALL或使用#include <algorithm> #include <iostream> #include <string> using namespace std; string reverse(string x) { reverse(x.begin(), x.end()); return x; } int main() { int x, len, temp; cin >> x; string arr[x], cop1; for (int i = 0; i < x; i++) { cin >> arr[i]; } for (int i = 0; i < x; i++) { len = arr[i].length(); cop1 = arr[i]; if (len % 2 == 0) { cop1 = arr[i].substr(0, len / 2) + reverse(arr[i]).substr(len / 2); if (cop1 == reverse(cop1) && cop1 > arr[i]) { } else { temp = stoi(arr[i].substr(0, len / 2)) + 1; cop1 = to_string(temp) + reverse(to_string(temp)).substr(0); } } else { cop1 = arr[i].substr(0, len / 2 + 1) + reverse(arr[i]).substr(len / 2 + 1); if (cop1 == reverse(cop1) && cop1 > arr[i]) { } else { temp = stoi(arr[i].substr(0, len / 2 + 1)) + 1; cop1 = to_string(temp) + reverse(to_string(temp)).substr(1); } } arr[i] = cop1; } for (int i = 0; i < x; i++) cout << arr[i] << endl; return 0; } 包裹列的解决方法,但是我无法解决。

有什么想法可能会起作用吗?

1 个答案:

答案 0 :(得分:0)

简单但难看的方法是这样做:

IF (
    TRUE (),
    SUMMARIZECOLUMNS ( Date[Year], "Reference Date", STARTOFMONTH ( Date[Date] ) ),
    SUMMARIZECOLUMNS ( Date[FiscalYear], "Reference Date", STARTOFMONTH ( Date[Date] ) )
)

目前我想不出没有重复代码的方法。