在Power BI Desktop中访问DAX中IF语句中的字段

时间:2017-02-06 11:45:30

标签: powerbi dax

当我使用SUM时,编辑器的intellisense向我展示了我的表的列,但是当我使用IF或Switch时,我没有显示任何列。

在If(https://powerbi.microsoft.com/es-es/documentation/powerbi-desktop-tutorial-create-calculated-columns/)的这个示例中,[]之间的列工作正常但是当我将列放在[]之间时我有错误

错误

enter image description here

请问好吗?

此致

2 个答案:

答案 0 :(得分:0)

我可以看到你正在创建一个度量,而在教程中他们正在创建一个计算列。度量和计算列的行为不同,在创建计算列时,您使用的表达式会占用每行的上下文,因此您可以通过class PhotoAlbumViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, MKMapViewDelegate { var pin: Pin! lazy var context: NSManagedObjectContext = { let appDelegate = UIApplication.shared.delegate as! AppDelegate return appDelegate.stack!.context }() lazy var fetchedResultsController: NSFetchedResultsController<NSFetchRequestResult> = { let fetchedRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Photo") fetchedRequest.sortDescriptors = [] fetchedRequest.predicate = NSPredicate(format: "pins == %@", argumentArray: [self.pin]) return NSFetchedResultsController(fetchRequest: fetchedRequest, managedObjectContext: self.context, sectionNameKeyPath: nil, cacheName: nil) }() override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) do { try fetchedResultsController.performFetch() } catch let error as NSError { print("Unable to perform fetch: \(error.localizedDescription)") } let fetchedObjects = fetchedResultsController.fetchedObjects print(fetchedObjects.count) //returns 1 only } 直接引用任何列。

但是,度量会在不同的上下文中进行评估,因此需要aggregation函数来确定列的值。

示例:计算列。

[Column]

示例:措施。

Is Red Calculated Column = IF([Color]="Red","Yes","No")

注意我使用Is Red Measure = IF(FIRSTNONBLANK([Color],0)="Red","Yes","No") 聚合函数从度量中访问FIRSTNONBLANK列。

根据您的衡量标准,上述表达方式可能对您不起作用,我仅将其用于示例目的。

如果这有帮助,请告诉我。

答案 1 :(得分:0)

我找到了答案

TotalHoras = SUMX(Horas;if(Horas[Tipo]="M";Horas[Duration]/60;Horas[Duration]))

与@alejandrozuleta一样,说措施需要聚合功能才能运作