Admin

Nirav Dangar

Posts by this author

Power BI Q&A vs Tableau Ask Data
Dec 10, 2024

In the world of Business Intelligence (BI), Power BI and Tableau are popular choices for data visualization and analysis. One area where they stand out is their natural language querying feature, allowing users to interact with data using everyday language. In this blog post, we will compare Power BI's Q&A with Tableau’s Ask Data to help you understand their performance and strengths. It's important to consider the unique features of each tool when deciding between Power BI and Tableau for data visualization and analytics. While both are leaders in BI, they offer different capabilities. This comparison will help you make an informed decision on which tool is best suited for your needs.            Overview :            Before diving into the feature comparison, it's essential to understand the core strengths of each tool:    Power BI Q&A  Power BI Q&A is a natural language query feature that allows users to interact with their data by asking questions in plain language. It provides instant answers in the form of visualizations, which can be customized and refined. It offers extensive customization through synonyms and feedback, making it highly adaptable to specific business terminologies.  Tableau  Tableau Ask Data is a conversational analytics tool that enables users to query their data using natural language. It guides users with auto-suggestions and generates visualizations directly from their queries. While user-friendly and intuitive, it offers less customization compared to Power BI Q&A and is most effective with well-structured datasets.    Feature Comparison : Feature   Power BI Q&A  Tableau Ask Data   Natural Language Processing   Utilizes Microsoft’s NLP models to interpret user questions. Supports complex queries and understands contextual nuances.  Uses Tableau’s proprietary NLP models, designed to handle a wide range of questions but may require simpler phrasing.  Ease of Use   Highly user-friendly with a straightforward interface. Users can quickly get answers without deep technical knowledge.  Also user-friendly, but users might need to familiarize themselves with specific phrasing and syntax for optimal results.  Accuracy of Responses   Generally accurate, especially with well-structured data models. Complexity of queries can impact precision.  Accurate for straightforward queries; may require refinement for more complex requests.  Customization   Allows for significant customization of Q&A responses. Users can modify how questions are interpreted and how answers are displayed.  Customization is available but may be less extensive compared to Power BI. Adjustments often involve more manual configuration.  Integration with Data Sources   Seamless integration with Microsoft products (Excel, Azure, SQL Server) and supports a wide variety of other data sources.  Connects with numerous data sources, including cloud services, databases, and spreadsheets, with a focus on flexibility and ease of connection.  Visualization Options   Offers a range of visualization types including bar charts, line charts, pie charts, and maps, automatically generated based on user queries.  Provides a rich array of visualization options such as heat maps, scatter plots, and geographic maps. Visualizations are highly customizable.  Training and Support   Extensive Microsoft support, including documentation, forums, and training resources. Regular updates and community contributions.  Comprehensive support through Tableau's resources, including community forums, training programs, and customer service. Extensive documentation available.  Performance   Generally responsive, though performance may vary with the complexity of queries and dataset size. Optimization may be needed for large datasets.  Typically, high performance with optimized data models. Performance can vary based on the complexity of visualizations and data size.  Cost   Included in Power BI’s pricing plans, which are competitive and scalable, making it a cost-effective option for many organizations.  Tableau's pricing is tiered, with higher costs associated with advanced features and larger deployments. It may be more expensive depending on the scale and requirements.  Mobile Accessibility   Offers robust mobile support with responsive design for dashboards and Q&A features, ensuring usability across devices.  Strong mobile support with interactive dashboards and visualizations, providing a consistent experience across different devices.  Security   Benefits from Microsoft's robust security and compliance infrastructure, including data encryption and access controls.  Provides extensive security options, including row-level security, user permissions, and integration with enterprise security systems.  Flexibility  Users can define synonyms for field names and data points, it also handles ambiguous language  It offers more structured responses, but it requires a clearer understanding of the data's structure.  Data Modeling   Tight integration with Power BI’s data model allows more complex and refined queries.  While flexible, the data model needs to be well-structured for Ask Data to perform optimally, and it might require more manual setup to achieve complex querying.  Integration  Q&A is deeply embedded into Power BI dashboards, allowing users to interact with the data in the context of their visualizations  Ask Data is integrated into Tableau workbooks, allowing users to query data directly within the context of their visualizations  Collaboration   Integrates with Microsoft Teams for basic collaboration  Strong collaboration features, including user management, permissions, and sharing  Scalability  Scales well in large organizations, particularly those already invested in Power BI for reporting.  Scales well with Tableau’s robust enterprise features but might require more manual effort to maintain optimal performance in large-scale implementations.  Deployment   Cloud-based or on-premises (through Power BI Report Server)  Cloud-based or on-premises options  User Interface   Simplified interface focused on natural language interaction  User-friendly interface with customization options for advanced users  Data Refresh and Management  Automated Refresh - Supports scheduled data refreshments.  Flexible Refresh - Extensive options for data refresh and management.  Advanced Analytics  Basic - Advanced analytics capabilities are less extensive compared to Tableau.  Advanced - Strong capabilities for advanced analytics and statistical functions.  Support and Community  Strong - Backed by Microsoft’s support and a large community of users.  Robust - Large and active user community with extensive support resources.    Key Differences : Focus: Power BI Q&A is specialized for natural language querying, while Tableau is a comprehensive BI platform.  Depth of Analysis: Tableau offers a deeper level of data analysis and customization compared to Q&A.  Data Preparation: Power BI has more robust data preparation features. Dashboarding: Power BI provides a richer dashboarding experience.  Conclusion : When choosing between Power BI Q&A and Tableau, it all comes down to your specific needs and preferences. Power BI Q&A is great for easy data analysis through natural language queries, especially for those already using Microsoft products. However, Tableau provides more customization and interactivity for users who need detailed visualizations. Both tools are proficient in natural language querying but serve different purposes. It is important to assess your organization's requirements to determine which tool aligns best with your business intelligence strategy. Factors such as existing infrastructure and budget constraints should be considered when deciding between Power BI and Tableau, as each offers distinct strengths for data visualization and analysis. Ultimately, the choice between Power BI Q&A and Tableau depends on your organization's specific needs and goals.   

Power BI: Connect & Normalize JSON Files
Mar 12, 2024

Introduction: Welcome to our guide on normalizing JSON files using Power Query! JSON (JavaScript Object Notation) has become one of the most popular formats for storing and exchanging data due to its simplicity and flexibility. However, working with JSON data in its raw form can sometimes be challenging, especially when dealing with nested structures or arrays. In this blog post, we'll delve into the process of normalizing JSON files using Power Query. Normalization refers to the process of organizing data into a tabular format, making it easier to analyze and manipulate.    First we need to import data in power bi desktop with Json connection.  click on get data inside home tab of power BI Desktop.   Click on more tab to get Json file connection. click on connect button which redirect you to your systeam then choose your Json file.   You redirect to your Power Query Editor. Power Query editor interface like below. Here we can check Table.column ,Table.Rows are in form of list Not in form of row data that we want. Click on one of list which show what inside of list. Here data inside of one  list.   It has around 121 rows inside one list and we need to expand it Row wise. so first idea is to exoand list column by left click on right side of column and choose expand new rows for every column which contains list.   But you notice that for one row there are multiple sub-rows which is not appropriate like below. Here for extract time(First row) only one row valid other rows are not valid or duplicate so these happen with every rows and roes count for table is not acceptable. so our approach is not valid here we miss something In above image(image 5) table.rows and table.column has list in row. if you turn by turn expand both list you notice that both list has data(in some case same rows and in other case rows are not same) with same row count which indicate that both lists data are connected with each other. so we need to make a new column which combine both list in form of table . Go to add column tab> select custome column  it open  custome column interface and write code like below. Table.FromColumns({[Tables.Columns],[Tables.Rows]})  it add new column in existing table like below. when you click on customecolumns row you will redirect to expanded version of table which look like below.   now we can normalize data. now we can separate table to multiple table by for easy for data modeling  create duplicate table and filter out as needed  now close your power query tab and you get your desired output below is advance editor code if you don't want to apply all  steps that we implemented above let Source = Json.Document(File.Contents("C:\Users\MagnusMinds\Downloads\Order_CRHESTHASH_ET_FD2024-03-11_PID184_ORD686_MRK2024-03-08 09 14 44.410_T00638455040948575166.json")), #"Converted to Table" = Table.FromRecords({Source}), #"Expanded Tables" = Table.ExpandListColumn(#"Converted to Table", "Tables"), #"Expanded Tables1" = Table.ExpandRecordColumn(#"Expanded Tables", "Tables", {"Name", "QueryStartTimeUtc", "QueryEndTimeUtc", "QueryElapsedTimeMs", "CurrentRow", "Columns", "Rows", "OriginalRowCount", "Hashes", "MasterRecordIsDuplicate"}, {"Tables.Name", "Tables.QueryStartTimeUtc", "Tables.QueryEndTimeUtc", "Tables.QueryElapsedTimeMs", "Tables.CurrentRow", "Tables.Columns", "Tables.Rows", "Tables.OriginalRowCount", "Tables.Hashes", "Tables.MasterRecordIsDuplicate"}), #"Changed Type" = Table.TransformColumnTypes(#"Expanded Tables1",{{"Tables.Name", type text}, {"Tables.QueryStartTimeUtc", type datetime}, {"Tables.QueryEndTimeUtc", type datetime}, {"Tables.QueryElapsedTimeMs", Int64.Type}, {"Tables.CurrentRow", Int64.Type}, {"Tables.Columns", type any}, {"Tables.Rows", type any}, {"Tables.OriginalRowCount", Int64.Type}, {"Tables.Hashes", type any}, {"Tables.MasterRecordIsDuplicate", type logical}}), #"Expanded Tables.Rows" = Table.ExpandListColumn(#"Changed Type", "Tables.Rows"), #"Added Custom" = Table.AddColumn(#"Expanded Tables.Rows", "Customcolumn", each Table.FromColumns({[Tables.Columns],[Tables.Rows]})), #"Expanded Customcolumn" = Table.ExpandTableColumn(#"Added Custom", "Customcolumn", {"Column1", "Column2"}, {"Customcolumn.Column1", "Customcolumn.Column2"}), #"Expanded Customcolumn.Column1" = Table.ExpandRecordColumn(#"Expanded Customcolumn", "Customcolumn.Column1", {"Name"}, {"Customcolumn.Column1.Name"}) in #"Expanded Customcolumn.Column1"  

Creating Custom Calendars in Power BI
Mar 08, 2024

Introduction Have you ever tried to add holidays which lie between today (or any dates) to a specific date or the same kind of scenario? If yeah Then this article helps you   Scenario Recently, I faced a situation where I needed to add days to the current date (today) which depends on the total number of hours left for a particular employee. Means employee A has 150 hours left and spent only 6-hour for one working day, then divide the hour by daily spend and find the date (forecast date) where employee A completed their task but did not include holidays and weekends. Let’s consider employee X. Get 15 fore-cast days on the basis of the hours left. Those 15 days do not include weekends and holidays, which we need to add to the current date (today). Let’s consider Employee X got 3 days of weekend or public holiday out of 15 days, then it also needs to add in fore-cast days, which means now 15 days become 18 days.  If employee X's forecast date falls on a weekend or a holiday, it is also not applicable.   We take some data for solving scenario   Holiday Table   Logic behind solving this problem is we going to take a separate date table which will help for deriving fore-cast date and add new column of Holidays. After that we add a new column which give us a flag of 0 if Date in weekends or in holidays and 1 for date in working day after that we give rank according to flag with exclude of Flag 0.   We make a new date Table which particular Use for Fore-cast Date Using Below DAX Code Here I am taking only 2024 Date field fore-cast Datetable = ADDCOLUMNS( CALENDAR( TODAY(), DATE(2024,12,31) ), "weekday", WEEKDAY([Date],2), "Dayname", FORMAT([Date],"dddd") )   Join holiday Table and fore-cast Date table using Date field     Make a new column (Holiday) in Fore-cast Date table which help us to bring only holiday date from holiday table to existing table holiday = RELATED('Holiday Table'[holiday date])   Make another new column with some condition using Dax code which give Flag 0 for those date which are weekends and holidays and 1 for Working days. workingday = IF( NOT('fore-cast Datetable'[weekday]) in {6,7}, IF( 'fore-cast Datetable'[holiday]<>BLANK(), 0, 1 ), 0 ) Add column Which Give day no from Today with ignoring Weekends and holidays Day Number = RANKX( FILTER( ALL('fore-cast Datetable'[Date],'fore-cast Datetable'[workingday]), 'fore-cast Datetable'[workingday]<>0 ), 'fore-cast Datetable'[Date],,ASC )   Our main goal is taking Days on behalf of Hours and find those date which is equivalent to left days from today with ignoring weekends and holidays. Day Number column give us that ability   Fore-cast date table Look like below Now make a new column in employee table Forecast date column = var a =FLOOR((Employee[Hour left]/6),1) return MAXX( FILTER( ALL('fore-cast Datetable'[Date],'fore-cast Datetable'[Day Number]), 'fore-cast Datetable'[Day Number]=a ), 'fore-cast Datetable'[Date] )   We can make measure with little bit changes fore-cast date using measure = var a = FLOOR(SUM(employee[hour left])/6,1) return MAXX( FILTER( ALL('fore-cast Datetable'[Date],'fore-cast Datetable'[Day Number]), 'fore-cast Datetable'[Day Number]=a ), 'fore-cast Datetable'[Date] )   Make a table visual     If you don’t want to add new table to your Existing data model We can also achieve Without fore-cast date table by creating it on fly.   Use below Dax code for column fore-cast date without table refrence = var a = FLOOR(('Employee'[Hour left]/6),1) var b =NETWORKDAYS(TODAY(),TODAY()+a,1) var c = ADDCOLUMNS( CALENDAR(TODAY(),TODAY()+a+b), "weekday", WEEKDAY([Date],2), "dayname",FORMAT([Date],"dddd"), "publikholiday",LOOKUPVALUE('Holiday Table'[Holiday Date],[holiday date],[Date]), "holidaycondition", var a1 = IF( not(WEEKDAY([Date],2)) in {6,7}, IF( LOOKUPVALUE('Holiday Table'[Holiday Date],[holiday date],[Date])<>BLANK(), 0, 1 ), 0 ) RETURN a1 ) var f = ADDCOLUMNS(c,"rank",RANKX(FILTER(c,[holidaycondition]<>0),[Date],,ASC)) var e= MINX(FILTER(f,[rank]=a),[Date]) return e here little bit changes in above code for measure Use below code for measure fore-cast date measurewithout table refrence = var a = FLOOR(sum(employee[hour left])/6,1) var b =NETWORKDAYS(TODAY(),TODAY()+a,1) var c =ADDCOLUMNS( CALENDAR(TODAY(),TODAY()+a+b), "weekday",WEEKDAY([Date],2), "dayname",FORMAT([Date],"dddd"), "publikholiday",LOOKUPVALUE('Holiday Table'[Holiday Date],'Holiday Table'[holiday date],[Date]), "holidaycondition", var a1 = IF( not(WEEKDAY([Date],2)) in {6,7}, IF( LOOKUPVALUE('Holiday Table'[Holiday Date],'Holiday Table'[holiday date],[Date])<>BLANK(), 0, 1 ), 0 ) RETURN a1 ) var f = ADDCOLUMNS(c,"rank",RANKX(FILTER(c,[holidaycondition]<>0),[Date],,ASC)) var e= MINX(FILTER(f,[rank]=a),[Date]) return e   Output without Using Table refrence

magnusminds website loader