我有一张下表,
MEM_ID dateDiff
4522 10
111 1
1112 -1
1232 5
121135 20
145 30
12254 60
我想要一个Dax公式,它将在小数列下给出如下输出
MEM_ID dateDiff Measure
4522 10 0-15 Days
111 1 0-15 Days
1112 -1 <0 Days
1232 5 0-15 Days
121135 20 15-30 Days
145 30 15-30 Days
12254 60 >60 Days
我使用了这个没有用的公式,任何帮助都非常有用= IF(MAX([DateDiff])<= 1,“ 0”,IF(MAX([DateDiff])> = 1 && MAX([DateDiff] )<15,“ 1-15天”,IF(MAX([DateDiff])> = 15 && MAX([DateDiff])<30,“ 15-30天”,IF(MAX([DateDiff])> = 30 && MAX([DateDiff])<60,“ 30-60天”,IF(MAX([DateDiff])> = 60 && MAX([DateDiff])<90,“ 60-90”,BLANK()))) ))
答案 0 :(得分:0)
我将通过创建如下查找表来解决此问题。
创建一个名为Lookup
的新工作表,然后从A1
开始添加以下数据:
Min Max Bucket Description
-1000 0 1 <0 Days
1 15 2 0 - 15 Days
16 30 3 16 - 30 Days
如果需要添加更多存储桶,则可以添加其他行。例如,要创建30到60的存储桶,您可以添加以下行:
31 60 4 30 - 60 Days
一旦定义了查找表,就可以使用主工作表中的以下公式对其进行引用:
=OFFSET(Lookup!$A$1,SUMPRODUCT((B2>=Lookup!$A$2:$A$4)*(B2<=Lookup!$B$2:$B$4)*(Lookup!$C$2:$C$4)),3)
在上面的公式中,要查找的值在B2
中。
如果您已将行添加到查找表中,则需要扩展公式中的查找范围,即Lookup!$A$2:$A$4
更改为Lookup!$A$2:$A$5
,依此类推。
答案 1 :(得分:0)
使用类似Ian Ash的查找表会更好,但是,如果必须使用IF公式,请尝试使用已有的公式,但删除MAX函数。
=IF([DateDiff]< 1, "0",
IF([DateDiff]>=1 && [DateDiff]<15,"1- 15 days",
IF([DateDiff]>=15 && [DateDiff]<30,"15-30 Days",
IF([DateDiff]>=30 && [DateDiff]<60,"30-60 Days",
IF([DateDiff]>=60 && [DateDiff]<90,"60-90",
BLANK())))))