我要根据条件动态选择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 SELECTCOLUMNS
,ALL
或使用#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;
}
包裹列的解决方法,但是我无法解决。
有什么想法可能会起作用吗?
答案 0 :(得分:0)
简单但难看的方法是这样做:
IF (
TRUE (),
SUMMARIZECOLUMNS ( Date[Year], "Reference Date", STARTOFMONTH ( Date[Date] ) ),
SUMMARIZECOLUMNS ( Date[FiscalYear], "Reference Date", STARTOFMONTH ( Date[Date] ) )
)
目前我想不出没有重复代码的方法。