{"id":109389,"date":"2025-07-08T19:10:16","date_gmt":"2025-07-08T13:40:16","guid":{"rendered":"https:\/\/www.mygreatlearning.com\/blog\/?page_id=109389"},"modified":"2025-07-02T17:12:06","modified_gmt":"2025-07-02T11:42:06","slug":"power-bi-quiz","status":"publish","type":"page","link":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/","title":{"rendered":"Power BI Quiz"},"content":{"rendered":"\n<div id=\"powerbi-quiz-app-wrapper\">\n    <style>\n        \/* --- General Reset & Variables --- *\/\n        html { scroll-behavior: smooth; }\n        #powerbi-quiz-app-wrapper {\n            --primary-blue: #1A73E8; --hover-blue: #1865c9; --background-grey: #F8F9FA; --border-grey: #DADCE0; --text-primary: #202124; --text-secondary: #5F6368; --option-bg: #FFFFFF; --option-hover-bg: #F1F3F4; --color-success: #1E8E3E; --correct-bg: #E6F4EA; --correct-text: #117233; --color-danger: #D93025; --incorrect-bg: #FCE8E6; --incorrect-text: #A50E0E; --color-warning: #f59e0b; --whatsapp-green: #25D366; --twitter-blue: #1DA1F2; --linkedin-blue: #0A66C2; --telegram-blue: #24A1DE; --shadow: 0 1px 2px 0 rgba(60, 64, 67, 0.3), 0 2px 6px 2px rgba(60, 64, 67, 0.15); --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.1); font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif; color: var(--text-primary); box-sizing: border-box;\n        }\n        #powerbi-quiz-app-wrapper *, #powerbi-quiz-app-wrapper *::before, #powerbi-quiz-app-wrapper *::after { box-sizing: inherit; }\n        #quiz-app-container { width: 1200px; max-width: 100%; border-radius: 8px; overflow: hidden; margin: 50px auto auto auto; }\n        #powerbi-quiz-app-wrapper .quiz-screen { display: none; }\n        #powerbi-quiz-app-wrapper .quiz-screen.active { display: block; animation: fadeIn 0.5s ease-out; }\n        @keyframes fadeIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }\n        \n        \/* --- Screen Padding & Header --- *\/\n        #main-menu-view, #user-details-view, #analysis-view { padding: 2rem 3rem; }\n        #powerbi-quiz-app-wrapper .quiz-header { text-align: center; margin-bottom: 2.5rem; }\n        #powerbi-quiz-app-wrapper .quiz-header h1 { font-size: 2.5rem; margin: 0 0 0.5rem 0; }\n        #powerbi-quiz-app-wrapper .quiz-header p { font-size: 1.1rem; color: var(--text-secondary); max-width: 600px; margin: 0 auto; }\n        \n        \/* --- Main Menu --- *\/\n        #powerbi-quiz-app-wrapper .difficulty-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; margin-bottom: 3rem; }\n        #powerbi-quiz-app-wrapper .difficulty-card { border: 1px solid var(--border-grey); background-color: #fff; border-radius: 8px; text-align: center; padding: 1.5rem; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; display: flex; flex-direction: column; }\n        #powerbi-quiz-app-wrapper .difficulty-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }\n        #powerbi-quiz-app-wrapper .difficulty-card .icon { font-size: 2.5rem; margin-bottom: 1rem; }\n        #powerbi-quiz-app-wrapper .difficulty-card h2 { font-size: 1.5rem; margin: 0 0 0.5rem 0; }\n        #powerbi-quiz-app-wrapper .difficulty-card p { font-size: 0.9rem; color: var(--text-secondary); margin: 0 0 1.5rem 0; }\n        #powerbi-quiz-app-wrapper .difficulty-card .features { font-size: 0.875rem; color: var(--text-secondary); text-align: left; margin-bottom: 1.5rem; flex-grow: 1; }\n        #powerbi-quiz-app-wrapper .difficulty-card .features p { margin: 0.5rem 0; }\n        #powerbi-quiz-app-wrapper .start-btn { width: 100%; }\n        #powerbi-quiz-app-wrapper .difficulty-card.beginner h2 { color: var(--color-success); }\n        #powerbi-quiz-app-wrapper .difficulty-card.intermediate h2 { color: var(--color-warning); }\n        #powerbi-quiz-app-wrapper .difficulty-card.advanced h2 { color: var(--color-danger); }\n        #powerbi-quiz-app-wrapper .quiz-features-section { text-align: center; background-color: #fff; padding: 2rem; border-radius: 8px; border: 1px solid var(--border-grey); }\n        #powerbi-quiz-app-wrapper .quiz-features-section h2 { font-size: 1.5rem; margin: 0 0 1.5rem 0; }\n        #powerbi-quiz-app-wrapper .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; }\n        #powerbi-quiz-app-wrapper .feature-item { display: flex; flex-direction: column; align-items: center; }\n        #powerbi-quiz-app-wrapper .feature-item .icon { font-size: 2rem; margin-bottom: 0.5rem; }\n        \n        \/* --- Buttons --- *\/\n        #powerbi-quiz-app-wrapper .quiz-btn { font-size: 0.875rem; font-weight: 500; padding: 0.6rem 1.5rem; border-radius: 4px; border: 1px solid var(--border-grey); cursor: pointer; transition: background-color 0.2s ease; margin-top: 20px;}\n        #powerbi-quiz-app-wrapper .quiz-btn.primary { background-color: var(--primary-blue); color: white; border-color: var(--primary-blue); }\n        #powerbi-quiz-app-wrapper .quiz-btn.primary:hover { background-color: var(--hover-blue); }\n        #powerbi-quiz-app-wrapper .quiz-btn:disabled { opacity: 0.5; cursor: not-allowed; }\n        \n        \/* --- Quiz Header & Progress --- *\/\n        #quiz-view { background-color: #fff; }\n        #quiz-header, #results-header, #analysis-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.5rem; border-bottom: 1px solid var(--border-grey); }\n        #quiz-header h1, #results-header h1, #analysis-header h1 { font-size: 1.25rem; margin: 0; }\n        #powerbi-quiz-app-wrapper .header-actions { display: flex; align-items: center; gap: 1rem; }\n        #progress-stepper { display: flex; gap: 0.5rem; flex-grow: 1; margin: 0 2rem; }\n        #powerbi-quiz-app-wrapper .step { height: 4px; flex-grow: 1; background-color: #E0E0E0; border-radius: 2px; transition: background-color 0.3s ease; }\n        #powerbi-quiz-app-wrapper .step.active { background-color: var(--primary-blue); }\n        #powerbi-quiz-app-wrapper .step.correct { background-color: var(--color-success); }\n        #powerbi-quiz-app-wrapper .step.incorrect { background-color: var(--color-danger); }\n        #question-count, #timer { font-size: 0.875rem; color: var(--text-secondary); font-weight: 500; }\n        #timer { min-width: 50px; text-align: right; }\n        \n        \/* --- Quiz Body & Options --- *\/\n        #quiz-body, #analysis-body { padding: 2rem 3rem; }\n        .powerbi-quiz-question-text { font-size: 1.25rem; margin: 0 0 2rem 0; line-height: 1.5; }\n        #options-container { display: flex; flex-direction: column; gap: 1rem; }\n        #powerbi-quiz-app-wrapper .option { border: 1px solid var(--border-grey); border-radius: 8px; cursor: pointer; transition: all 0.2s ease-in-out; }\n        #powerbi-quiz-app-wrapper .option:not(.disabled):hover { border-color: var(--primary-blue); box-shadow: 0 0 0 1px var(--primary-blue); }\n        #powerbi-quiz-app-wrapper .option-label { display: block; padding: 1rem; cursor: pointer; }\n        #powerbi-quiz-app-wrapper .option-letter { font-weight: 500; margin-right: 1rem; color: var(--primary-blue); }\n        #powerbi-quiz-app-wrapper .option.disabled { cursor: not-allowed; }\n        #powerbi-quiz-app-wrapper .option.correct { border-color: var(--color-success); background-color: var(--correct-bg); }\n        #powerbi-quiz-app-wrapper .option.incorrect { border-color: var(--color-danger); background-color: var(--incorrect-bg); }\n        \n        \/* --- Feedback & Hint --- *\/\n        #powerbi-quiz-app-wrapper .feedback { padding: 0 1rem 1rem 1rem; font-size: 0.9rem; line-height: 1.5; }\n        #powerbi-quiz-app-wrapper .feedback-title { font-weight: bold; }\n        #powerbi-quiz-app-wrapper .feedback-title.correct { color: var(--correct-text); }\n        #powerbi-quiz-app-wrapper .feedback-title.incorrect { color: var(--incorrect-text); }\n        #powerbi-quiz-app-wrapper .feedback-text { color: var(--text-secondary); margin-top: 0.25rem; }\n        #hint-container { margin-top: 2rem; }\n        #hint-toggle { color: var(--primary-blue); background: none; border: none; padding: 0; font-weight: 500; cursor: pointer; display: flex; align-items: center; gap: 0.25rem; }\n        #hint-toggle svg { width: 20px; height: 20px; transition: transform 0.2s; }\n        #hint-toggle.open svg { transform: rotate(180deg); }\n        #hint-text { margin-top: 0.5rem; color: var(--text-secondary); padding: 1rem; background-color: var(--option-hover-bg); border-radius: 8px; font-size: 0.9rem; }\n        \n        \/* --- Quiz Footer --- *\/\n        #quiz-footer, #analysis-footer { display: flex; justify-content: space-between; padding: 1.5rem 3rem; gap: 1rem; border-top: 1px solid var(--border-grey); }\n        #analysis-footer { justify-content: flex-end; }\n        \n        \/* --- User Details & Analysis --- *\/\n        #user-details-form-container { max-width: 500px; margin: 2rem auto; }\n        #user-details-form .form-group { margin-bottom: 1rem; }\n        #user-details-form label { display: block; font-weight: 500; margin-bottom: 0.5rem; text-align: left;}\n        #user-details-form input { width: 100%; padding: 0.75rem; border: 1px solid var(--border-grey); border-radius: 4px; font-size: 1rem; }\n        #user-details-form input:focus { outline: none; border-color: var(--primary-blue); box-shadow: 0 0 0 2px rgba(26, 115, 232, 0.2); }\n        #user-details-form small { display: block; margin-top: 0.5rem; color: var(--text-secondary); font-size: 0.8rem; text-align: left;}\n        #powerbi-quiz-app-wrapper .form-actions { display: flex; gap: 1rem; margin-top: 1.5rem; }\n        #powerbi-quiz-app-wrapper .form-actions .quiz-btn { flex: 1; }\n        #powerbi-quiz-app-wrapper .category-analysis { margin-bottom: 2rem; }\n        #powerbi-quiz-app-wrapper .category-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; }\n        #powerbi-quiz-app-wrapper .category-header h3 { margin: 0; font-size: 1rem; }\n        #powerbi-quiz-app-wrapper .category-score { font-weight: 500; }\n        #powerbi-quiz-app-wrapper .progress-bar-bg { width: 100%; height: 8px; background: #eee; border-radius: 4px; overflow: hidden; }\n        #powerbi-quiz-app-wrapper .progress-bar-fg { height: 100%; background: var(--primary-blue); border-radius: 4px; transition: width 0.5s ease-out; }\n        #powerbi-quiz-app-wrapper .question-breakdown { font-size: 0.875rem; margin-top: 1rem; text-align: left; }\n        #powerbi-quiz-app-wrapper .question-breakdown strong { color: var(--correct-text); }\n        #powerbi-quiz-app-wrapper .question-breakdown span { color: var(--incorrect-text); }\n        #powerbi-quiz-app-wrapper .hidden { display: none; }\n\n        \/* --- START: New Results View Styles --- *\/\n        #results-view .container { max-width: 1100px; margin: 0 auto; padding: 2rem 1rem; color: #1A202C;}\n        #results-view .page-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 2rem; flex-wrap: wrap; }\n        #results-view .header-title h1 { font-size: 2rem; font-weight: 700; margin: 0; }\n        #results-view .header-title p { color: #4A5568; margin-top: 0.25rem; }\n        #results-view .restart-quiz-btn { display: flex; align-items: center; gap: 0.5rem; padding: 0.6rem 1.2rem; background-color: #4353FF; border: 1px solid #E2E8F0; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; color: white; cursor: pointer; transition: background-color 0.2s; margin-top: 1rem; }\n        #results-view .restart-quiz-btn:hover { background-color: #4353FF; }\n        #results-view .main-content { display: grid; grid-template-columns: 1fr; gap: 2rem; }\n        #results-view .card { background-color: #ffffff; padding: 1.5rem; }\n        #results-view .score-card { text-align: center; color:gray;}\n        #results-view .score-card h2 { font-size: 1.125rem; font-weight: 600; margin-top: 0; margin-bottom: 1rem; }\n        #results-view .score-visual { position: relative; width: 10rem; height: 10rem; margin: 0 auto; }\n        #results-view .score-visual svg { width: 100%; height: 100%; }\n        #results-view .progress-ring-circle { transition: stroke-dashoffset 0.8s ease-out; transform: rotate(-90deg); transform-origin: 50% 50%; }\n        #results-view .score-text { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; }\n        #results-view .score-text .score-value { font-size: 2.25rem; font-weight: 700; }\n        #results-view .score-text .score-value span { font-size: 1.5rem; color: #4A5568; }\n        #results-view .score-text .score-label { font-size: 0.875rem; color: #4A5568; margin-top: 0.25rem; }\n        #results-view .score-breakdown { margin-top: 1.5rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }\n        #results-view .score-breakdown div span { font-weight: 700; font-size: 1.125rem; }\n        #results-view .score-breakdown div p { font-size: 0.75rem; color: #4A5568; margin: 0; }\n        #results-view .text-correct { color: #22c55e; }\n        #results-view .text-incorrect { color: #ef4444; }\n        #results-view .text-skipped { color: #6b7280; }\n        #results-view .analysis-card { display: flex; align-items: flex-start; gap: 1rem; justify-content: center; color:gray; }\n        #results-view .analysis-icon { flex-shrink: 0; width: 2.5rem; height: 2.5rem; background-color: #F0F1FF; border-radius: 0.5rem; display: flex; align-items: center; justify-content: center; }\n        #results-view .analysis-content h3 { font-weight: 600; margin: 0; font-size: 1.2rem; }\n        #results-view .analysis-content p { font-size: 0.875rem; color: #4A5568; margin: 0.25rem 0 1rem 0; }\n        #results-view .primary-button { width: 100%; padding: 0.6rem 1.2rem; background-color: #4353FF; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; color: #ffffff; border: none; cursor: pointer; transition: background-color 0.2s; }\n        #results-view .primary-button:hover { background-color: #2539cc; }\n        #results-view .learning-journey-card h2 { font-size: 1.5rem; font-weight: 700; margin-top: 0; }\n        #results-view .learning-journey-card > p { color: #4A5568; margin: 0.25rem 0 2rem 0; }\n        #results-view .course-list { display: flex; flex-direction: column; gap: 1rem; }\n        #results-view .course-card { padding: 1.25rem; border: 1px solid #E2E8F0; border-radius: 0.75rem; transition: box-shadow 0.2s, border-color 0.2s; }\n        #results-view .course-card:hover { border-color: #4353FF; box-shadow: 0 4px 6px -1px rgb(0 0 0 \/ 0.1), 0 2px 4px -2px rgb(0 0 0 \/ 0.1); }\n        #results-view .course-card-content { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 3px; }\n        #results-view .course-details h3 { font-weight: 700; margin: 0; font-size: 1rem; }\n        #results-view .course-details p { font-size: 0.875rem; color: #4A5568; margin-top: 0.25rem; max-width: 36rem; }\n        #results-view .course-button { margin-top: 1rem; flex-shrink: 0; padding: 0.3rem 1rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; cursor: pointer; border: 1px solid #4353FF; transition: background-color 0.2s; text-decoration: none; display: inline-block; }\n        #results-view .btn-primary { background-color: #4353FF; color: #ffffff; }\n        #results-view .btn-primary:hover { background-color: #2539cc; }\n        #results-view .page-footer { margin-top: 2rem; padding: 2rem; }\n        #results-view .footer-content { display: grid; grid-template-columns: 1fr; gap: 2rem; }\n        #results-view .footer-column h3 { font-size: 1.125rem; font-weight: 700; margin: 0; }\n        #results-view .footer-column p { font-size: 0.875rem; color: #4A5568; margin-top: 0.25rem; margin-bottom: 1rem; }\n        #results-view .resource-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }\n        #results-view .resource-link { padding: 0.5rem 1rem; background-color: #f3f4f6; color: #4A5568; font-size: 0.875rem; font-weight: 500; border-radius: 9999px; text-decoration: none; transition: background-color 0.2s, color 0.2s; }\n        #results-view .resource-link:hover { background-color: #F0F1FF; color: #4353FF; }\n        #results-view .share-icons { display: flex; align-items: center; gap: 0.75rem; }\n        #results-view .share-icon { width: 2.5rem; height: 2.5rem; display: flex; align-items: center; justify-content: center; background-color: #f3f4f6; border-radius: 9999px; color: #4A5568; transition: background-color 0.2s; }\n        #results-view .share-icon:hover { background-color: #e5e7eb; }\n        #results-view .share-icon svg { width: 1.25rem; height: 1.25rem; }\n        \/* --- END: New Results View Styles --- *\/\n\n        \/* --- Media Queries (Responsiveness) --- *\/\n        @media (max-width: 768px) {\n            #main-menu-view, #quiz-body, #user-details-view, #analysis-view, #results-view .container { padding: 1.5rem; }\n            #powerbi-quiz-app-wrapper .quiz-header h1 { font-size: 2rem; }\n            #powerbi-quiz-app-wrapper .difficulty-grid { grid-template-columns: 1fr; }\n            #progress-stepper { display: none; }\n            #quiz-header h1 { font-size: 1rem; }\n            #quiz-footer { flex-direction: column-reverse; gap: 5rem; margin-bottom: -20px; }\n            #quiz-footer>div { display: flex; justify-content: flex-end; width: 100%; gap: 0.5rem; }\n        }\n        @media (min-width: 640px) {\n            #results-view .page-header { flex-wrap: nowrap; }\n            #results-view .restart-quiz-btn { margin-top: 0; }\n            #results-view .course-button { margin-top: 0; width: auto; }\n            #results-view .course-card-content { flex-wrap: nowrap; }\n        }\n        @media (min-width: 768px) {\n            #results-view .footer-content { grid-template-columns: 2fr 1fr; }\n        }\n        @media (min-width: 1024px) {\n            #results-view .main-content { grid-template-columns: 1fr 2fr; }\n        }\n    <\/style>\n    <div id=\"quiz-app-container\">\n        <div id=\"main-menu-view\" class=\"quiz-screen active\">\n            <div class=\"quiz-header\"><h1 id=\"power-bi-quiz-challenge\">Power BI Quiz Challenge<\/h1><p>Test your Power BI knowledge with our comprehensive MCQs. Choose your difficulty and share your score with friends!<\/p><\/div>\n            <div class=\"difficulty-grid\">\n                <div class=\"difficulty-card beginner\" onclick=\"showUserDetailsView('beginner')\">\n                    <div class=\"icon\">\u2b50<\/div><h2 id=\"beginner\">Beginner<\/h2><p>For those new to Power BI<\/p>\n                    <div class=\"features\"><p>\u2022 Core Concepts & UI<\/p><p>\u2022 Power Query Basics<\/p><p>\u2022 Simple Visualizations<\/p><p>\u2022 10 Questions<\/p><\/div>\n                    <button class=\"quiz-btn primary start-btn\">Start Beginner Quiz<\/button>\n                <\/div>\n                <div class=\"difficulty-card intermediate\" onclick=\"showUserDetailsView('intermediate')\">\n                    <div class=\"icon\">\ud83c\udfc6<\/div><h2 id=\"intermediate\">Intermediate<\/h2><p>For practitioners and analysts<\/p>\n                    <div class=\"features\"><p>\u2022 DAX Fundamentals<\/p><p>\u2022 Data Modeling<\/p><p>\u2022 Power Query Transforms<\/p><p>\u2022 15 Questions<\/p><\/div>\n                    <button class=\"quiz-btn primary start-btn\">Start Intermediate Quiz<\/button>\n                <\/div>\n                <div class=\"difficulty-card advanced\" onclick=\"showUserDetailsView('advanced')\">\n                    <div class=\"icon\">\ud83e\udd47<\/div><h2 id=\"advanced\">Advanced<\/h2><p>A challenge for BI experts<\/p>\n                    <div class=\"features\"><p>\u2022 Advanced DAX<\/p><p>\u2022 Performance Tuning<\/p><p>\u2022 Row-Level Security<\/p><p>\u2022 15 Questions<\/p><\/div>\n                    <button class=\"quiz-btn primary start-btn\">Start Advanced Quiz<\/button>\n                <\/div>\n            <\/div>\n            <div class=\"quiz-features-section\">\n                <h2 id=\"quiz-features\">Quiz Features<\/h2>\n                <div class=\"features-grid\">\n                    <div class=\"feature-item\"><div class=\"icon\">\ud83e\udde0<\/div><p>Detailed Feedback<\/p><\/div>\n                    <div class=\"feature-item\"><div class=\"icon\">\ud83d\udcca<\/div><p>Performance Analysis<\/p><\/div>\n                    <div class=\"feature-item\"><div class=\"icon\">\ud83d\udca1<\/div><p>Helpful Hints<\/p><\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <div id=\"user-details-view\" class=\"quiz-screen\">\n            <div class=\"quiz-header\">\n                <h1 id=\"almost-there\">Almost There!<\/h1>\n                <p>Just a few details before you start the quiz.<\/p>\n            <\/div>\n            <div id=\"user-details-form-container\">\n               <form id=\"user-details-form\">\n                    <div class=\"form-group\"><label for=\"user-name\">Your Name<\/label><input type=\"text\" id=\"user-name\" name=\"user-name\" required><\/div>\n                    <div class=\"form-group\"><label for=\"user-email\">Your Email<\/label><input type=\"email\" id=\"user-email\" name=\"user-email\" required><\/div>\n                    <small>You will also get free access to exclusive content through email.<\/small>\n                    <div class=\"form-actions\">\n                        <button type=\"button\" id=\"back-to-menu-btn\" class=\"quiz-btn\">Back to Menu<\/button>\n                        <button type=\"submit\" class=\"quiz-btn primary\">Let's Go!<\/button>\n                    <\/div>\n                <\/form>\n            <\/div>\n        <\/div>\n        <div id=\"quiz-view\" class=\"quiz-screen\">\n            <header id=\"quiz-header\">\n                <h1 id=\"power-bi-quiz\">Power BI Quiz<\/h1>\n                <div id=\"progress-stepper\"><\/div>\n                <div class=\"header-actions\"><div id=\"timer\">00:00<\/div><div id=\"question-count\">1\/10<\/div><\/div>\n            <\/header>\n            <main id=\"quiz-body\">\n                <h2 class=\"powerbi-quiz-question-text\" style=\"font-size: 22px;\" class=\"powerbi-quiz-question-text\" style=\"font-size: 22px;\" id=\"question-will-appear-here\">Question will appear here.<\/h2>\n                <div id=\"options-container\"><\/div>\n                <div id=\"hint-container\">\n                    <button id=\"hint-toggle\">Show hint <svg viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\"><\/path><\/svg><\/button>\n                    <div id=\"hint-text\" class=\"hidden\">Hint text goes here.<\/div>\n                <\/div>\n            <\/main>\n            <footer id=\"quiz-footer\">\n                <button class=\"quiz-btn\" onclick=\"showMainMenu(true)\">Back to Menu<\/button>\n                <div><button id=\"back-btn\" class=\"quiz-btn\">Back<\/button><button id=\"next-btn\" class=\"quiz-btn primary\">Next<\/button><\/div>\n            <\/footer>\n        <\/div>\n        \n        <div id=\"results-view\" class=\"quiz-screen\">\n            <div class=\"container\">\n                <header class=\"page-header\">\n                    <div class=\"header-title\">\n                        <h1 id=\"quiz-completed\">Quiz Completed!<\/h1>\n                        <p>Great effort! Here's a summary of your performance.<\/p>\n                    <\/div>\n                    <button class=\"restart-quiz-btn\" onclick=\"showMainMenu(false)\">\n                        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"\/><path d=\"M3 3v5h5\"\/><\/svg>\n                        <span>Restart Quiz \/ Main Menu<\/span>\n                    <\/button>\n                <\/header>\n        \n                <main class=\"main-content\">\n                    <aside class=\"left-column\">\n                        <div class=\"card score-card\">\n                            <h2 id=\"your-score\">Your Score<\/h2>\n                            <div class=\"score-visual\">\n                                 <svg viewBox=\"0 0 100 100\">\n                                    <circle stroke=\"#e5e7eb\" stroke-width=\"10\" fill=\"transparent\" r=\"45\" cx=\"50\" cy=\"50\" \/>\n                                    <circle class=\"progress-ring-circle\" stroke=\"#4353FF\" stroke-width=\"10\" stroke-dasharray=\"282.6\" stroke-dashoffset=\"282.6\" stroke-linecap=\"round\" fill=\"transparent\" r=\"45\" cx=\"50\" cy=\"50\" id=\"score-circle\" \/>\n                                <\/svg>\n                                <div class=\"score-text\">\n                                    <span class=\"score-value\" id=\"new-score-value\">0<span>\/10<\/span><\/span>\n                                    <span class=\"score-label\" id=\"new-accuracy-label\">0% Accuracy<\/span>\n                                <\/div>\n                            <\/div>\n                            <div class=\"score-breakdown\">\n                                <div><span class=\"text-correct\" id=\"new-right-value\">0<\/span><p>Correct<\/p><\/div>\n                                <div><span class=\"text-incorrect\" id=\"new-wrong-value\">0<\/span><p>Incorrect<\/p><\/div>\n                                <div><span class=\"text-skipped\" id=\"new-skipped-value\">10<\/span><p>Skipped<\/p><\/div>\n                            <\/div>\n                        <\/div>\n        \n                        <div class=\"card analysis-card\" style=\"margin-top: 2rem;\">\n                            <div class=\"analysis-icon\">\n                               <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#4353FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"><\/path><\/svg>\n                            <\/div>\n                            <div class=\"analysis-content\">\n                                <h3 id=\"strengths-and-growth-areas\">Strengths and growth areas<\/h3>\n                                <p>Get a summary of your key strengths and discover areas where you can focus your studies.<\/p>\n                                <button class=\"primary-button\" id=\"analyse-btn\">Analyze my performance<\/button>\n                            <\/div>\n                        <\/div>\n                    <\/aside>\n        \n                    <section class=\"right-column\">\n                        <div class=\"card learning-journey-card\">\n                            <h2 id=\"continue-your-learning-journey\">Continue Your Learning Journey<\/h2>\n                            <p>Enhance your data visualization skills with these courses.<\/p>\n                            <div class=\"course-list\">\n                                <div class=\"course-card\">\n                                    <div class=\"course-card-content\">\n                                        <div class=\"course-details\">\n                                            <h3 id=\"data-visualization-with-power-bi\">Data Visualization with Power BI<\/h3>\n                                            <p>Learn to create interactive visualizations and dashboards using Power BI. Understand BI fundamentals, components of Power BI, and apply DAX for dynamic analysis.<\/p>\n                                        <\/div>\n                                        <a href=\"https:\/\/www.mygreatlearning.com\/academy\/learn-for-free\/courses\/data-visualization-with-power-bi?utm_source=blog\" target=\"_blank\" rel=\"noopener\" class=\"course-button btn-primary\">Enroll for Free<\/a>\n                                    <\/div>\n                                <\/div>\n                                <div class=\"course-card\">\n                                    <div class=\"course-card-content\">\n                                        <div class=\"course-details\">\n                                            <h3 id=\"advanced-visualization-with-power-bi\">Advanced Visualization with Power BI<\/h3>\n                                            <p>Learn to build advanced Power BI dashboards and visualizations. Work with parameters, chart types, and storytelling techniques through guided projects.<\/p>\n                                        <\/div>\n                                        <a href=\"https:\/\/www.mygreatlearning.com\/academy\/premium\/data-visualization-with-powerbi?utm_source=blog\" target=\"_blank\" rel=\"noopener\" class=\"course-button btn-primary\">Enroll Now<\/a>\n                                    <\/div>\n                                <\/div>\n                                 <div class=\"course-card\">\n                                    <div class=\"course-card-content\">\n                                        <div class=\"course-details\">\n                                            <h3 id=\"data-visualization-using-tableau\">Data Visualization using Tableau<\/h3>\n                                            <p>Learn Tableau to create visual dashboards and understand data visualization principles, data types, and BI fundamentals through practical examples.<\/p>\n                                        <\/div>\n                                        <a href=\"https:\/\/www.mygreatlearning.com\/academy\/learn-for-free\/courses\/data-visualization-using-tableau?utm_source=blog\" target=\"_blank\" rel=\"noopener\" class=\"course-button btn-primary\">Enroll for Free<\/a>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                    <\/section>\n                <\/main>\n                \n                <footer class=\"card page-footer\">\n                    <div class=\"footer-content\">\n                        <div class=\"footer-column\">\n                            <h3 id=\"explore-more-resources\">Explore More Resources<\/h3>\n                            <p class=\"text-sm text-brand-text-secondary mt-1 mb-4\">Dive deeper into topics that interest you.<\/p>\n                            <div class=\"resource-links\">\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/quizzes\/\" class=\"resource-link\">Quizzes and MCQs<\/a>\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/tools-and-compilers\/\" class=\"resource-link\">Online Compilers<\/a>\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/exercises\/\" class=\"resource-link\">Coding Practice<\/a>\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/interview-questions\/\" class=\"resource-link\">Interview Questions<\/a>\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/careers-and-roadmap\/\" class=\"resource-link\">Careers and Roadmaps<\/a>\n                                <a href=\"https:\/\/www.mygreatlearning.com\/blog\/project-ideas\/\" class=\"resource-link\">Project Ideas<\/a>\n                            <\/div>\n                        <\/div>\n        \n                        <div class=\"footer-column\">\n                             <h3 id=\"share-your-achievement\">Share Your Achievement<\/h3>\n                             <p>Let your network know about your progress.<\/p>\n                             <div class=\"share-icons\">\n                                 <a href=\"#\" id=\"new-share-whatsapp\" class=\"share-icon\" aria-label=\"WhatsApp\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"128\" height=\"128\" aria-labelledby=\"whTitle\" role=\"img\">\n                                    <title id=\"whTitle\">WhatsApp-style icon (custom color #4a5568)<\/title>\n                                    <defs>\n                                        <filter id=\"shadow\" x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\"><feDropShadow dx=\"0\" dy=\"1.5\" stdDeviation=\"1.2\" flood-color=\"#000\" flood-opacity=\"0.18\"\/><\/filter>\n                                        <linearGradient id=\"baseGrad\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"><stop offset=\"0%\" stop-color=\"#6b7280\"\/><stop offset=\"100%\" stop-color=\"#4a5568\"\/><\/linearGradient>\n                                    <\/defs>\n                                    <path d=\"M12 2C6.486 2 2 6.486 2 12c0 1.653.403 3.213 1.107 4.595L2 22l5.467-1.446A9.963 9.963 0 0 0 12 22c5.514 0 10-4.486 10-10S17.514 2 12 2z\" fill=\"#000\" opacity=\"0\" filter=\"url(#shadow)\"\/>\n                                    <path d=\"M12 2C6.486 2 2 6.486 2 12c0 1.653.403 3.213 1.107 4.595L2 22l5.467-1.446A9.963 9.963 0 0 0 12 22c5.514 0 10-4.486 10-10S17.514 2 12 2z\" fill=\"url(#baseGrad)\" stroke=\"#ffffff\" stroke-width=\"0.9\" stroke-linejoin=\"round\"\/>\n                                    <path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.472-.149-.672.15-.199.297-.768.967-.941 1.165-.173.199-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.884-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.151-.173.201-.298.301-.497.1-.199.05-.373-.025-.522-.075-.148-.672-1.612-.922-2.206-.242-.579-.487-.5-.672-.51l-.576-.01c-.199 0-.523.074-.798.373-.273.297-1.04 1.017-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.095 3.2 5.076 4.487 2.981 1.289 2.981.86 3.517.807.536-.05 1.758-.718 2.006-1.41.248-.692.248-1.285.173-1.41-.074-.124-.273-.198-.57-.347z\" fill=\"#ffffff\"\/>\n                                <\/svg><\/a>\n                                <a href=\"#\" id=\"new-share-linkedin\" class=\"share-icon\" aria-label=\"LinkedIn\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19,3A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3H19M18.5,18.5V13.2A3.26,3.26 0 0,0 15.24,9.94C14.39,9.94 13.4,10.43 12.92,11.24V10.13H10.13V18.5H12.92V13.57C12.92,12.8 13.54,12.17 14.31,12.17A1.4,1.4 0 0,1 15.71,13.57V18.5H18.5M6.88,8.56A1.68,1.68 0 0,0 8.56,6.88C8.56,6 7.81,5.25 6.88,5.25A1.69,1.69 0 0,0 5.2,6.88C5.2,7.81 5.95,8.56 6.88,8.56M8.27,18.5V10.13H5.5V18.5H8.27Z\" \/><\/svg><\/a>\n                                <a href=\"#\" id=\"new-share-telegram\" class=\"share-icon\" aria-label=\"Telegram\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M2.01 21L23 12L2.01 3L2 10L17 12L2 14L2.01 21Z\" \/><\/svg><\/a>\n                                <a href=\"#\" id=\"new-share-twitter\" class=\"share-icon\" aria-label=\"Twitter\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 2.9,4.79C2.53,5.42 2.33,6.15 2.33,6.94C2.33,8.43 3.11,9.75 4.19,10.55C3.47,10.53 2.8,10.33 2.2,10.03C2.2,10.05 2.2,10.07 2.2,10.08C2.2,12.24 3.73,14.04 5.7,14.44C5.31,14.55 4.91,14.61 4.5,14.61C4.22,14.61 3.95,14.58 3.69,14.53C4.24,16.33 5.95,17.55 7.95,17.59C6.46,18.8 4.57,19.56 2.5,19.56C2.17,19.56 1.85,19.54 1.53,19.5C3.55,20.84 5.9,21.6 8.41,21.6C16,21.6 20.34,15.22 20.34,9.73C20.34,9.56 20.33,9.4 20.32,9.23C21.16,8.63 21.88,7.87 22.46,7.01C21.74,7.33 20.97,7.55 20.18,7.65C20.99,7.16 21.64,6.38 21.96,5.43L22.46,6Z\" \/><\/svg><\/a>\n                             <\/div>\n                        <\/div>\n                    <\/div>\n                <\/footer>\n            <\/div>\n        <\/div>\n\n        <div id=\"analysis-view\" class=\"quiz-screen\">\n            <header id=\"analysis-header\"><h1 id=\"performance-analysis\">Performance Analysis<\/h1><\/header>\n            <main id=\"analysis-body\"><\/main>\n            <footer id=\"analysis-footer\">\n                <button id=\"back-to-results-btn\" class=\"quiz-btn primary\">Back to Results<\/button>\n            <\/footer>\n        <\/div>\n    <\/div>\n    <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ --- DATA ---\n        const quizData = {\n            beginner: [\n                {\n                    \"category\": \"Fundamentals\",\n                    \"question\": \"What is the primary function of the Power Query Editor in Power BI?\",\n                    \"options\": {\n                        \"A\": \"To connect, clean, and transform source data\",\n                        \"B\": \"To write DAX calculations for measures\",\n                        \"C\": \"To create visualizations and build reports\",\n                        \"D\": \"To manage user access and publish dashboards\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This is the first step in the BI process, before you even start building visuals. It's also known as the 'ETL' layer.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! The Power Query Editor is Power BI's data transformation engine (ETL tool) used to shape and clean data before it's loaded into the data model.\"\n                    }\n                },\n                {\n                    \"category\": \"File Types\",\n                    \"question\": \"A '.pbix' file contains which of the following components?\",\n                    \"options\": {\n                        \"A\": \"Only the data source connection settings\",\n                        \"B\": \"A link to a report published in the Power BI Service\",\n                        \"C\": \"Only the report visuals and pages\",\n                        \"D\": \"The report, the data model, and the data itself (if imported)\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"Think of this file as a complete, self-contained project.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! A .pbix file is a comprehensive package that includes the report pages, the data model (tables, relationships), Power Query transformations, and typically a copy of the imported data.\"\n                    }\n                },\n                {\n                    \"category\": \"Core Concepts\",\n                    \"question\": \"What is the fundamental difference between a 'Report' and a 'Dashboard' in the Power BI Service?\",\n                    \"options\": {\n                        \"A\": \"Reports are single-page, while Dashboards have multiple pages\",\n                        \"B\": \"Dashboards are for data transformation, Reports are for visualization\",\n                        \"C\": \"Reports are interactive multi-page analyses; Dashboards are single-page summaries for monitoring\",\n                        \"D\": \"There is no difference; the terms are interchangeable\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"One is meant for deep exploration, the other is for a quick overview or 'at-a-glance' view.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! A Report is the multi-page canvas where you explore data with interactive visuals. A Dashboard is a single-page highlight reel, often combining visuals (tiles) from multiple reports to provide a consolidated view.\"\n                    }\n                },\n                {\n                    \"category\": \"Languages\",\n                    \"question\": \"In the context of Power BI, what is DAX used for?\",\n                    \"options\": {\n                        \"A\": \"Connecting to data sources\",\n                        \"B\": \"Creating custom calculations, measures, and columns\",\n                        \"C\": \"Cleaning and preparing raw data\",\n                        \"D\": \"Designing the visual layout of a report\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"DAX stands for Data Analysis Expressions. The name itself describes its purpose.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! DAX is the formula language used to create calculations in the data model. It's used for creating measures (e.g., Total Sales) and calculated columns.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"What is the primary purpose of creating 'relationships' between tables in the data model view?\",\n                    \"options\": {\n                        \"A\": \"To improve the speed of data import\",\n                        \"B\": \"To allow filters to propagate from one table to another\",\n                        \"C\": \"To merge the tables into a single large table\",\n                        \"D\": \"To sort the data within the tables\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"Think about how clicking on a 'Product' in one visual should affect a 'Sales' visual.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Relationships define how tables are connected, enabling you to filter and aggregate data across them. For example, a relationship between a 'Sales' table and a 'Product' table allows you to filter sales by product category.\"\n                    }\n                },\n                {\n                    \"category\": \"Building Blocks\",\n                    \"question\": \"What is a 'Measure' in Power BI?\",\n                    \"options\": {\n                        \"A\": \"A visual element like a bar chart or a map\",\n                        \"B\": \"A filter applied to the entire report\",\n                        \"C\": \"A physical column added to a table during data refresh\",\n                        \"D\": \"A DAX formula that calculates an aggregated value on-the-fly\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"Measures don't store data in the table itself; they are calculated when you use them in a visual.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! A measure is a dynamic calculation (written in DAX) whose result changes depending on the context (filters) in the report. It's calculated at query time and doesn't physically store data.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Connection\",\n                    \"question\": \"What are the two primary data storage modes in Power BI?\",\n                    \"options\": {\n                        \"A\": \"Import and DirectQuery\",\n                        \"B\": \"Live and Extract\",\n                        \"C\": \"Online and Offline\",\n                        \"D\": \"Local and Cloud\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"One mode copies the data into the Power BI file, the other leaves the data at the source.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! 'Import' mode loads a compressed copy of the data into Power BI for high performance. 'DirectQuery' mode sends queries directly to the source database each time you interact with a visual.\"\n                    }\n                },\n                {\n                    \"category\": \"UI\",\n                    \"question\": \"Which pane in Power BI Desktop is used to add data fields to a selected visual?\",\n                    \"options\": {\n                        \"A\": \"The Filters pane\",\n                        \"B\": \"The Data Model view\",\n                        \"C\": \"The Fields pane\",\n                        \"D\": \"The Power Query Editor\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"This pane lists all the tables and columns from your data model.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! The Fields pane, typically on the right side of the screen, contains your data model's tables. You drag fields from this pane onto visuals or their property wells (like Axis, Legend, Values).\"\n                    }\n                },\n                {\n                    \"category\": \"Languages\",\n                    \"question\": \"What is the 'M' language primarily associated with?\",\n                    \"options\": {\n                        \"A\": \"Creating measures in the report view\",\n                        \"B\": \"The step-by-step data transformation process in the Power Query Editor\",\n                        \"C\": \"Managing user permissions in the Power BI Service\",\n                        \"D\": \"Defining relationships between tables\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"Each time you click a button to transform data in Power Query, a line of this code is generated for you.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! 'M' is the formula language behind the Power Query Editor. Every transformation step you apply (e.g., removing columns, filtering rows) is recorded as a line of M code.\"\n                    }\n                },\n                {\n                    \"category\": \"Fundamentals\",\n                    \"question\": \"What is the main difference between Power BI Desktop and Power BI Service?\",\n                    \"options\": {\n                        \"A\": \"Desktop is for viewing, Service is for creating\",\n                        \"B\": \"Desktop is paid, Service is free\",\n                        \"C\": \"There is no difference in functionality\",\n                        \"D\": \"Desktop is for authoring and building, Service is for sharing and collaboration\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"One is a local application on your computer, the other is a cloud-based platform.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! Power BI Desktop is the free authoring tool used to connect to data, model it, and create reports. The Power BI Service is the cloud-based platform where you publish, share, and collaborate on those reports and create dashboards.\"\n                    }\n                }\n            ],\n            intermediate: [\n                {\n                    \"category\": \"DAX\",\n                    \"question\": \"What is the critical difference between a Calculated Column and a Measure?\",\n                    \"options\": {\n                        \"A\": \"Columns are calculated at data refresh and stored in the table; Measures are calculated on-the-fly based on user interaction\",\n                        \"B\": \"Columns use DAX, but Measures use M\",\n                        \"C\": \"Measures can be used in visuals, but Columns cannot\",\n                        \"D\": \"Columns work on numbers, while Measures work on text\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"Think about when the calculation happens and if it consumes memory (RAM) or CPU.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! A Calculated Column computes a value for each row and stores it in the model, consuming memory and being calculated at refresh. A Measure is calculated at query time (when a visual renders) and responds dynamically to filters, consuming CPU.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX\",\n                    \"question\": \"What is the primary purpose of the CALCULATE function in DAX?\",\n                    \"options\": {\n                        \"A\": \"To perform simple math like addition or subtraction\",\n                        \"B\": \"To create a new physical table in the model\",\n                        \"C\": \"To convert data from one type to another\",\n                        \"D\": \"To modify the filter context in which an expression is evaluated\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"This is often called the 'superpower' of DAX. It allows you to change the filters being applied to your calculation.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! CALCULATE is the most important function in DAX. It evaluates an expression within a modified filter context, allowing you to add, remove, or change filters for highly specific calculations (e.g., 'Sales for all regions' while the report is filtered to a single region).\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"In data modeling, what is meant by a 'Star Schema'?\",\n                    \"options\": {\n                        \"A\": \"A single, massive table containing all data\",\n                        \"B\": \"A central fact table connected to multiple surrounding dimension tables\",\n                        \"C\": \"A chain of tables where each table filters the next\",\n                        \"D\": \"A model where every table is filtered by every other table\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"The shape of the model diagram resembles its name, with a large table in the middle and smaller tables branching off.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! A star schema is a best-practice modeling approach where a central 'fact' table (containing quantitative data like sales amounts) is linked to several 'dimension' tables (containing descriptive attributes like products, customers, and dates).\"\n                    }\n                },\n                {\n                    \"category\": \"Power Query\",\n                    \"question\": \"What is the difference between 'Merge' and 'Append' in Power Query?\",\n                    \"options\": {\n                        \"A\": \"Merge adds new rows; Append adds new columns\",\n                        \"B\": \"They are the same operation\",\n                        \"C\": \"Merge adds new columns from a matching table (like a VLOOKUP); Append stacks rows from one table onto another\",\n                        \"D\": \"Merge is for numbers; Append is for text\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"Think of Append as making a table longer (more rows) and Merge as making a table wider (more columns).\",\n                    \"feedback\": {\n                        \"C\": \"Correct! 'Append' stacks tables on top of each other, increasing the row count. 'Merge' joins two tables side-by-side based on a common column, similar to a SQL join, adding new columns.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX\",\n                    \"question\": \"Which DAX function would you use to iterate through each row of a table, perform a calculation, and then aggregate the result?\",\n                    \"options\": {\n                        \"A\": \"SUM()\",\n                        \"B\": \"SUMX()\",\n                        \"C\": \"FILTER()\",\n                        \"D\": \"CALCULATE()\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"The 'X' at the end of many DAX functions signifies an 'iterator' that works row-by-row.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! SUMX is an iterator function. It goes through the specified table row-by-row, evaluates an expression for each row, and then sums up the results of that expression. This is essential for calculations like `Price * Quantity`.\"\n                    }\n                },\n                {\n                    \"category\": \"Interactivity\",\n                    \"question\": \"What is the main purpose of using 'Bookmarks' in a Power BI report?\",\n                    \"options\": {\n                        \"A\": \"To save a specific version of the .pbix file\",\n                        \"B\": \"To create a link to an external website\",\n                        \"C\": \"To capture and save a specific state of a report page (filters, visibility of visuals) for storytelling\",\n                        \"D\": \"To mark a DAX formula as a favorite\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"This feature is key for creating guided narratives or saving specific analytical views within your report.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! Bookmarks capture the current state of a report page\u2014including filters, slicers, sort order, and the visibility of objects\u2014allowing you to create guided tours, narrative stories, or toggle between different views.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"Why is it best practice to set relationship 'Cross filter direction' to 'Single' whenever possible?\",\n                    \"options\": {\n                        \"A\": \"It prevents ambiguous filtering paths and improves performance\",\n                        \"B\": \"It is the only option available for most data sources\",\n                        \"C\": \"It allows filters to flow in both directions between tables\",\n                        \"D\": \"It makes the relationship line in the diagram look cleaner\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"Using 'Both' directions can sometimes create circular or confusing filter paths for the DAX engine to resolve.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! A single cross-filter direction creates a predictable, unambiguous flow of filters from the 'one' side (dimensions) to the 'many' side (facts). Using 'Both' (bi-directional) can introduce ambiguity, impact performance, and make DAX behavior harder to predict.\"\n                    }\n                },\n                {\n                    \"category\": \"Power Query\",\n                    \"question\": \"What does the 'Unpivot Columns' transformation do?\",\n                    \"options\": {\n                        \"A\": \"It combines multiple columns into a single column\",\n                        \"B\": \"It turns multiple columns into two columns: an 'Attribute' column (the old column headers) and a 'Value' column\",\n                        \"C\": \"It rotates the entire table 90 degrees\",\n                        \"D\": \"It splits a single column into multiple columns\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"This is used to convert wide, crosstab-formatted data into a tall, normalized format that's better for analysis.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Unpivoting is a powerful transformation that takes a wide table (e.g., columns for Jan, Feb, Mar) and makes it tall by creating an 'Attribute' column (containing 'Jan', 'Feb', 'Mar') and a 'Value' column (containing the corresponding data).\"\n                    }\n                },\n                {\n                    \"category\": \"DAX\",\n                    \"question\": \"What is the primary use case for the DAX function RELATED()?\",\n                    \"options\": {\n                        \"A\": \"To find all related tables in the model\",\n                        \"B\": \"To create a relationship between two tables\",\n                        \"C\": \"To calculate the total of a related field\",\n                        \"D\": \"To fetch a value from the 'one' side of a relationship into the 'many' side within a calculated column\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"This function lets you 'look up' a value from another table, but only if the relationship path is correct.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! RELATED() is used in a calculated column to bring a value from a related dimension table (the 'one' side) down to the fact table (the 'many' side). For example, bringing the 'Product Category' into your 'Sales' table.\"\n                    }\n                },\n                {\n                    \"category\": \"Service\",\n                    \"question\": \"What is a 'Power BI App' in the Power BI Service?\",\n                    \"options\": {\n                        \"A\": \"A bundled collection of dashboards and reports packaged for easy distribution to a broad audience\",\n                        \"B\": \"The mobile application for viewing reports on a phone\",\n                        \"C\": \"A development environment for creating custom visuals\",\n                        \"D\": \"Another name for a Power BI Workspace\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This is how you share content with end-users in a polished, professional way, separating it from the development workspace.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! A Power BI App is a formal way to package and share content (dashboards, reports) with consumers. It provides a cleaner user experience than sharing a workspace and offers more control over navigation and permissions.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Flows\",\n                    \"question\": \"What is a primary benefit of using Power BI Dataflows?\",\n                    \"options\": {\n                        \"A\": \"To make report visuals load faster\",\n                        \"B\": \"To write DAX measures that can be used across multiple reports\",\n                        \"C\": \"To create a centralized, reusable data transformation layer in the Power BI Service\",\n                        \"D\": \"To connect to real-time streaming data\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"Instead of each developer cleaning the same 'Customer' table in their own file, they can all connect to one already-prepared version.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! Dataflows allow you to perform data preparation in the cloud (using Power Query online). The resulting clean table can then be reused as a data source by multiple report creators, ensuring consistency and reducing duplicated effort.\"\n                    }\n                },\n                {\n                    \"category\": \"Interactivity\",\n                    \"question\": \"What does a 'Drillthrough' filter allow a user to do?\",\n                    \"options\": {\n                        \"A\": \"To see the underlying DAX query for a visual\",\n                        \"B\": \"To create a new visual by drilling into the data\",\n                        \"C\": \"To navigate from a summary visual to a detailed report page, filtered to the item they selected\",\n                        \"D\": \"To export the data from a visual to Excel\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"It's like moving from a 'Total Sales by Category' chart to a new page showing all the transaction details for just the category you clicked on.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! Drillthrough is an interactivity feature where you can right-click a data point (e.g., a specific product) and navigate to a separate, detailed page that is automatically filtered to show information only about that selected product.\"\n                    }\n                },\n                {\n                    \"category\": \"Performance\",\n                    \"question\": \"In Power Query, what is 'Query Folding'?\",\n                    \"options\": {\n                        \"A\": \"The process of collapsing the applied steps into a single M query\",\n                        \"B\": \"The process where Power Query translates transformation steps into the native language of the data source (e.g., SQL)\",\n                        \"C\": \"A feature that automatically renames columns\",\n                        \"D\": \"A way to hide unused queries in the editor\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"This is a key performance feature where the data source itself does the heavy lifting of filtering and transforming before sending data to Power BI.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Query folding is the ability of the Power Query engine to translate your M-language transformation steps into a single native query (like SQL) that is executed by the source system. This is highly efficient as it reduces the amount of data transferred.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"What does 'Cardinality' refer to in a relationship?\",\n                    \"options\": {\n                        \"A\": \"The uniqueness of values in the joining columns (e.g., one-to-one, one-to-many)\",\n                        \"B\": \"The number of columns in the tables\",\n                        \"C\": \"The direction of the filter propagation\",\n                        \"D\": \"The total number of rows in the data model\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"It defines the type of relationship between two tables, based on how many matching values exist on each side.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! Cardinality describes the relationship between two tables. The most common type is 'one-to-many' (e.g., one customer can have many sales), but there are also 'one-to-one' and 'many-to-many'.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX\",\n                    \"question\": \"When writing a measure, why might you use DIVIDE(10, 2) instead of 10 \/ 2?\",\n                    \"options\": {\n                        \"A\": \"DIVIDE() is faster for the DAX engine\",\n                        \"B\": \"The '\/' operator does not work in measures\",\n                        \"C\": \"DIVIDE() has a built-in ability to handle division by zero errors gracefully\",\n                        \"D\": \"DIVIDE() can work with text, while '\/' cannot\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"Think about what happens in mathematics when you divide a number by zero.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! The DIVIDE() function includes an optional third argument to handle cases where the denominator is zero. Using `10 \/ 0` would return an error, whereas `DIVIDE(10, 0, 0)` can be set to return a blank or an alternate value like 0, preventing your visual from breaking.\"\n                    }\n                }\n            ],\n            advanced: [\n                {\n                    \"category\": \"DAX Concepts\",\n                    \"question\": \"What is the critical distinction between 'Row Context' and 'Filter Context' in DAX?\",\n                    \"options\": {\n                        \"A\": \"Row context applies to measures, while filter context applies to calculated columns\",\n                        \"B\": \"Row context is created by the SUMX function, while filter context is created by the CALCULATE function\",\n                        \"C\": \"Filter context is always visible in the report, while row context is hidden\",\n                        \"D\": \"Row context iterates row-by-row within a single table; Filter context is the set of active filters applied to the data model from visuals or other measures\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"One is about 'which row am I on?', the other is about 'what data is currently visible in the model?'.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! This is the most crucial concept in advanced DAX. 'Row Context' exists during row-by-row evaluation (in calculated columns or iterators like SUMX) and understands only the data in its current row. 'Filter Context' is the set of all active filters from slicers, visuals, rows\/columns, and other DAX logic that constrain the data model.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Concepts\",\n                    \"question\": \"What is 'Context Transition' and which function primarily causes it?\",\n                    \"options\": {\n                        \"A\": \"The process of changing a data type, caused by FORMAT()\",\n                        \"B\": \"The transformation of a row context into an equivalent filter context, primarily caused by CALCULATE()\",\n                        \"C\": \"The change in filters when a user clicks a slicer\",\n                        \"D\": \"The process of moving data from Power Query to the Data Model\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"This powerful mechanism allows a measure to work correctly when evaluated inside a row context (like in a calculated column).\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Context transition is a fundamental DAX behavior. When you use CALCULATE (or a measure, which has an implicit CALCULATE) within a row context, the engine transforms that row context into a new filter context that filters the model to just that single row. This allows aggregations to be calculated correctly for each row.\"\n                    }\n                },\n                {\n                    \"category\": \"Security\",\n                    \"question\": \"What is the primary function of Row-Level Security (RLS)?\",\n                    \"options\": {\n                        \"A\": \"To restrict data access at the row level based on the logged-in user's role or identity\",\n                        \"B\": \"To hide entire report pages from certain users\",\n                        \"C\": \"To prevent users from exporting data to Excel\",\n                        \"D\": \"To encrypt the data within the .pbix file\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This ensures that two different users can view the same report but see different data relevant only to them.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! RLS is a security feature that filters data based on the user. You define 'roles' using DAX rules (e.g., `[EmailAddress] = USERPRINCIPALNAME()`), and Power BI applies these filters automatically, ensuring users only see the data they are authorized to see.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Functions\",\n                    \"question\": \"When would you use the DAX function EARLIER()?\",\n                    \"options\": {\n                        \"A\": \"To get a value from a previous point in time\",\n                        \"B\": \"To make a DAX calculation run faster\",\n                        \"C\": \"To refer to an outer row context when there are nested row contexts\",\n                        \"D\": \"To get the first value in a column\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"This function is needed when you are iterating inside of another iteration and need to access the value from the first one.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! EARLIER() is used to step outside the current row context to access a column value from a previous, outer row context. It's often used in complex calculated columns for scenarios like calculating a running total or ranking.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"What is a significant risk of using bi-directional relationships in your data model?\",\n                    \"options\": {\n                        \"A\": \"They are not supported by most data sources\",\n                        \"B\": \"They can introduce ambiguity in filtering paths, leading to incorrect results and poor performance\",\n                        \"C\": \"They prevent the use of time intelligence functions\",\n                        \"D\": \"They can only be used on tables with a single column\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"While powerful for certain scenarios, they can make it unclear which path a filter should take, especially in complex models.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Bi-directional relationships allow filters to propagate in both directions, which can create circular dependencies or multiple ambiguous filter paths. This can cause the DAX engine to produce unexpected results and significantly degrade query performance.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Functions\",\n                    \"question\": \"What is the main difference between ALL() and ALLEXCEPT() when used as a CALCULATE filter?\",\n                    \"options\": {\n                        \"A\": \"ALL() removes all filters, while ALLEXCEPT() removes only some filters\",\n                        \"B\": \"ALL() is a table function, while ALLEXCEPT() is a value function\",\n                        \"C\": \"ALL() removes filters from the entire table; ALLEXCEPT() removes filters from all columns in a table except for those specified\",\n                        \"D\": \"ALL() can only be used on one column, while ALLEXCEPT() can be used on multiple\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"Both are used to remove filters, but one provides a way to keep certain filters active.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! ALL() removes all filters from the specified table or columns. ALLEXCEPT() is a convenient shortcut that removes all filters from a table *except* for the filters on the columns you list as arguments. It's useful for calculating percentages of a sub-total.\"\n                    }\n                },\n                {\n                    \"category\": \"Deployment\",\n                    \"question\": \"What problem does 'Incremental Refresh' solve?\",\n                    \"options\": {\n                        \"A\": \"It allows real-time data to be displayed on a dashboard\",\n                        \"B\": \"It reduces the data model size by compressing old data\",\n                        \"C\": \"It automatically creates a date table for your model\",\n                        \"D\": \"It significantly speeds up data refreshes for large datasets by only refreshing a recent subset of data\"\n                    },\n                    \"answer\": \"D\",\n                    \"hint\": \"Instead of reloading a 10-year, 5-billion-row sales table every day, you would only need to reload the last few days of data.\",\n                    \"feedback\": {\n                        \"D\": \"Correct! Incremental refresh partitions a table by date and allows Power BI to refresh only the most recent partitions while archiving older, unchanged data. This dramatically reduces refresh time and resource consumption for large fact tables.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Optimization\",\n                    \"question\": \"What is a primary benefit of using Variables (VAR...RETURN) in a DAX formula?\",\n                    \"options\": {\n                        \"A\": \"It improves performance by calculating an expression once and reusing the result, and enhances readability\",\n                        \"B\": \"It is the only way to perform conditional logic\",\n                        \"C\": \"It allows the formula to connect to external data sources\",\n                        \"D\": \"It automatically adds comments to your code\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This technique prevents the DAX engine from having to calculate the same complex logic multiple times within a single measure.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! Variables are a cornerstone of good DAX. They improve performance because the engine stores the result of the variable's calculation and can reuse it multiple times within the formula. They also make complex formulas much easier to read and debug.\"\n                    }\n                },\n                {\n                    \"category\": \"Data Model\",\n                    \"question\": \"In advanced data modeling, what is a 'Role-Playing Dimension'?\",\n                    \"options\": {\n                        \"A\": \"A dimension table that is filtered by a fact table\",\n                        \"B\": \"A single dimension table (like a Date table) that is used to filter a fact table in multiple ways via inactive relationships\",\n                        \"C\": \"A table used specifically for implementing Row-Level Security\",\n                        \"D\": \"A dimension that changes its values based on user selection\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"Imagine a 'Sales' table with both an [OrderDate] and a [ShipDate]. You would relate your single 'Date' table to both columns.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! A role-playing dimension is a single dimension used multiple times in relation to a fact table. A classic example is a single 'Date' dimension related to both the 'Order Date' and 'Ship Date' in a 'Sales' table. One relationship is active, and others are inactive, activated on-demand using the USERELATIONSHIP function.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Advanced\",\n                    \"question\": \"What is the primary use case for 'Calculation Groups'?\",\n                    \"options\": {\n                        \"A\": \"To group multiple visuals together on the report canvas\",\n                        \"B\": \"To organize tables in the data model into folders\",\n                        \"C\": \"To dramatically reduce the number of redundant measures needed for common calculations like time intelligence\",\n                        \"D\": \"To create a group of users for Row-Level Security\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"Instead of creating 'Sales YTD', 'Profit YTD', 'COGS YTD', you can create one 'YTD' logic and apply it to any base measure.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! Calculation groups are a powerful feature for eliminating measure redundancy. You can define a set of 'Calculation Items' (e.g., YTD, MTD, PY) that can be applied to any existing base measure, drastically simplifying models that require many time-based or other repetitive calculations.\"\n                    }\n                },\n                {\n                    \"category\": \"Performance\",\n                    \"question\": \"What is the function of the 'Performance Analyzer' pane in Power BI Desktop?\",\n                    \"options\": {\n                        \"A\": \"It suggests better visuals to use for your data\",\n                        \"B\": \"It records the processing time for each visual element, breaking it down into DAX query, visual display, and other costs\",\n                        \"C\": \"It optimizes your DAX formulas automatically\",\n                        \"D\": \"It predicts the future performance of your report based on data growth\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"This tool is essential for debugging slow reports by showing you exactly which visual or DAX query is the bottleneck.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! The Performance Analyzer allows you to record user interactions and see how long each visual takes to load or update. It provides detailed timing information for the DAX query, the front-end visual rendering, and any other operations, helping you pinpoint and fix performance bottlenecks.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Functions\",\n                    \"question\": \"What is the purpose of the TREATAS function in DAX?\",\n                    \"options\": {\n                        \"A\": \"To change the data type of a column\",\n                        \"B\": \"To handle errors in a calculation\",\n                        \"C\": \"To apply the filter context from one table to another, unrelated table, creating a virtual relationship\",\n                        \"D\": \"To round a number to a specified number of digits\"\n                    },\n                    \"answer\": \"C\",\n                    \"hint\": \"This advanced function is used to propagate filters between tables that do not have a physical relationship in the model.\",\n                    \"feedback\": {\n                        \"C\": \"Correct! TREATAS is a powerful table function that applies the set of values from one column as filters to a column in another, unrelated table. It effectively creates a temporary, virtual relationship for the duration of the calculation, enabling filtering across disconnected tables.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Functions\",\n                    \"question\": \"How does USERELATIONSHIP work inside a CALCULATE function?\",\n                    \"options\": {\n                        \"A\": \"It allows a DAX expression to use an inactive relationship for the duration of that calculation\",\n                        \"B\": \"It creates a new physical relationship in the data model\",\n                        \"C\": \"It returns the name of the active relationship for a given table\",\n                        \"D\": \"It combines multiple relationships into a single, more powerful one\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This is the key to activating role-playing dimensions, like calculating sales by 'Ship Date' instead of the default 'Order Date'.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! In a model with multiple relationships between tables (e.g., a Date table linked to Order Date and Ship Date), one relationship is active and the others are inactive. USERELATIONSHIP is used as an argument within CALCULATE to override the default and use one of the inactive relationships for that specific measure.\"\n                    }\n                },\n                {\n                    \"category\": \"DAX Concepts\",\n                    \"question\": \"In DAX, what is a 'disconnected table' typically used for?\",\n                    \"options\": {\n                        \"A\": \"Holding a list of parameter values to be used in slicers to control measure behavior\",\n                        \"B\": \"Storing data that has errors and could not be loaded into the model\",\n                        \"C\": \"Archiving old data that is no longer needed for analysis\",\n                        \"D\": \"A table that has not yet been related to the fact table\"\n                    },\n                    \"answer\": \"A\",\n                    \"hint\": \"This is a common technique for 'what-if' analysis or for allowing a user to switch which measure is displayed in a chart.\",\n                    \"feedback\": {\n                        \"A\": \"Correct! A disconnected table (or harvesting table) is a table that is not related to the main data model. It's often used to populate a slicer. The user's selection from that slicer can then be captured by a measure (using functions like SELECTEDVALUE) to dynamically change the logic of a calculation, enabling powerful what-if scenarios.\"\n                    }\n                },\n                {\n                    \"category\": \"Architecture\",\n                    \"question\": \"What key capability does a Power BI Premium (PPU or Capacity) Dataflow have that a standard Dataflow does not?\",\n                    \"options\": {\n                        \"A\": \"It can connect to more data sources\",\n                        \"B\": \"It supports DirectQuery connections to it and has an enhanced compute engine\",\n                        \"C\": \"It allows for more transformation steps in Power Query\",\n                        \"D\": \"It can be refreshed more frequently than once per day\"\n                    },\n                    \"answer\": \"B\",\n                    \"hint\": \"This premium feature turns a Dataflow into something that behaves more like a full-fledged database in the cloud.\",\n                    \"feedback\": {\n                        \"B\": \"Correct! Premium Dataflows enable two critical features: the enhanced compute engine, which speeds up calculations on top of the dataflow, and the ability for downstream Power BI datasets to connect to the dataflow using DirectQuery. This allows for the creation of large, centralized, and highly performant data models.\"\n                    }\n                }\n            ]\n        };\n        \/\/ --- STATE ---\n        let quizState = {\n            difficulty: null,\n            questions: [],\n            currentIndex: 0,\n            userAnswers: [],\n            timerInterval: null,\n            totalSeconds: 0,\n        };\n        let selectedDifficulty = null;\n        \/\/ --- CORE FUNCTIONS ---\n        function showScreen(screenId) {\n            document.querySelectorAll('#powerbi-quiz-app-wrapper .quiz-screen').forEach(screen => {\n                screen.classList.remove('active');\n            });\n            const targetScreen = document.getElementById(screenId);\n            if (targetScreen) {\n                targetScreen.classList.add('active');\n            }\n        }\n        function startTimer() {\n            if (quizState.timerInterval) clearInterval(quizState.timerInterval);\n            quizState.timerInterval = setInterval(() => {\n                quizState.totalSeconds++;\n                const mins = Math.floor(quizState.totalSeconds \/ 60).toString().padStart(2, '0');\n                const secs = (quizState.totalSeconds % 60).toString().padStart(2, '0');\n                const timerEl = document.querySelector('#quiz-view #timer');\n                if(timerEl) timerEl.textContent = `${mins}:${secs}`;\n            }, 1000);\n        }\n        function stopTimer() {\n            clearInterval(quizState.timerInterval);\n        }\n        function resetQuizState() {\n            stopTimer();\n            quizState = {\n                difficulty: null, questions: [], currentIndex: 0, userAnswers: [], timerInterval: null, totalSeconds: 0,\n            };\n        }\n        window.showMainMenu = function(confirmFirst = false) {\n            if (confirmFirst) {\n                if (confirm('Are you sure you want to exit? Your progress will be lost.')) {\n                    resetQuizState();\n                    sessionStorage.removeItem('powerbiQuizResultState'); \/\/ Clear saved state\n                    showScreen('main-menu-view');\n                }\n            } else {\n                resetQuizState();\n                sessionStorage.removeItem('powerbiQuizResultState'); \/\/ Clear saved state\n                showScreen('main-menu-view');\n            }\n        }\n        window.showUserDetailsView = function(difficulty) {\n            const userInfoJSON = localStorage.getItem('quizUserInfo');\n            if (userInfoJSON) {\n                try {\n                    const userInfo = JSON.parse(userInfoJSON);\n                    if (new Date().getTime() < userInfo.expires) {\n                        startQuiz(difficulty);\n                        return;\n                    }\n                } catch(e) { \/* Invalid JSON *\/ }\n            }\n            selectedDifficulty = difficulty;\n            showScreen('user-details-view');\n            document.getElementById('user-name').focus();\n        }\n        function startQuiz(difficulty) {\n            quizState = {\n                difficulty,\n                questions: quizData[difficulty] || [],\n                currentIndex: 0,\n                userAnswers: new Array((quizData[difficulty] || []).length).fill(null),\n                timerInterval: null,\n                totalSeconds: 0,\n            };\n            showScreen('quiz-view');\n            setupQuizUI();\n            loadQuestion();\n            startTimer();\n        }\n        function setupQuizUI() {\n            const quizScreenEl = document.getElementById('quiz-view');\n            if (!quizScreenEl) return;\n            const quizTitle = quizScreenEl.querySelector('#quiz-title');\n            const questionCount = quizScreenEl.querySelector('#question-count');\n            const stepper = quizScreenEl.querySelector('#progress-stepper');\n            const timer = quizScreenEl.querySelector('#timer');\n            if (quizTitle) quizTitle.textContent = `${quizState.difficulty.charAt(0).toUpperCase() + quizState.difficulty.slice(1)} Power BI Quiz`;\n            if (questionCount) questionCount.textContent = `${quizState.currentIndex + 1}\/${quizState.questions.length}`;\n            if (timer) timer.textContent = '00:00';\n            if (stepper) stepper.innerHTML = quizState.questions.map(() => `<div class=\"step\"><\/div>`).join('');\n        }\n        function loadQuestion() {\n            const quizScreenEl = document.getElementById('quiz-view');\n            if (!quizScreenEl) return;\n            const question = quizState.questions[quizState.currentIndex];\n            if (!question) return;\n            const questionText = quizScreenEl.querySelector('.powerbi-quiz-question-text');\n            const optionsContainer = quizScreenEl.querySelector('#options-container');\n            const hintText = quizScreenEl.querySelector('#hint-text');\n            const hintToggle = quizScreenEl.querySelector('#hint-toggle');\n            const questionCountEl = quizScreenEl.querySelector('#question-count');\n            if (questionCountEl) questionCountEl.textContent = `${quizState.currentIndex + 1}\/${quizState.questions.length}`;\n            if (questionText) questionText.innerHTML = `${quizState.currentIndex + 1}. ${question.question}`;\n            if (optionsContainer) {\n                optionsContainer.innerHTML = '';\n                Object.entries(question.options).forEach(([key, value]) => {\n                    const optionDiv = document.createElement('div');\n                    optionDiv.className = 'option';\n                    optionDiv.dataset.key = key;\n                    optionDiv.innerHTML = `<label class=\"option-label\"><span class=\"option-letter\">${key}.<\/span> ${value}<\/label>`;\n                    optionDiv.addEventListener('click', () => handleOptionClick(key));\n                    optionsContainer.appendChild(optionDiv);\n                });\n            }\n            if (hintText) {\n                hintText.textContent = question.hint;\n                hintText.classList.add('hidden');\n            }\n            if (hintToggle) {\n                hintToggle.classList.remove('open');\n                hintToggle.disabled = false;\n            }\n            updateProgress();\n            restoreAnswerState();\n        }\n        function handleOptionClick(selectedKey) {\n            if (quizState.userAnswers[quizState.currentIndex] !== null) return;\n            const question = quizState.questions[quizState.currentIndex];\n            const isCorrect = selectedKey === question.answer;\n            quizState.userAnswers[quizState.currentIndex] = { selected: selectedKey, isCorrect };\n            const quizScreenEl = document.getElementById('quiz-view');\n            if (!quizScreenEl) return;\n            quizScreenEl.querySelectorAll('.option').forEach(opt => {\n                opt.classList.add('disabled');\n                if (opt.dataset.key === question.answer) {\n                    opt.classList.add('correct');\n                    addFeedback(opt, true);\n                } else if (opt.dataset.key === selectedKey) {\n                    opt.classList.add('incorrect');\n                    addFeedback(opt, false);\n                }\n            });\n            const hintToggle = quizScreenEl.querySelector('#hint-toggle');\n            if (hintToggle) hintToggle.disabled = true;\n            updateProgress();\n        }\n        function addFeedback(optionDiv, isCorrect) {\n            const question = quizState.questions[quizState.currentIndex];\n            const selectedKey = optionDiv.dataset.key;\n            const feedbackText = question.feedback[selectedKey] || (isCorrect ? question.feedback[question.answer] : \"That's not the correct choice.\");\n            if (!optionDiv.querySelector('.feedback')) {\n                optionDiv.querySelector('.option-label').insertAdjacentHTML('afterend', `\n                <div class=\"feedback\">\n                    <div class=\"feedback-title ${isCorrect ? 'correct' : 'incorrect'}\">${isCorrect ? '\u2713 Correct' : '\u2717 Incorrect'}<\/div>\n                    <div class=\"feedback-text\">${feedbackText}<\/div>\n                <\/div>`);\n            }\n        }\n        function restoreAnswerState() {\n            const answer = quizState.userAnswers[quizState.currentIndex];\n            const quizScreenEl = document.getElementById('quiz-view');\n            if (!quizScreenEl) return;\n            if (answer) {\n                quizScreenEl.querySelectorAll('.option').forEach(opt => {\n                    opt.classList.add('disabled');\n                    if (opt.dataset.key === quizState.questions[quizState.currentIndex].answer) {\n                        opt.classList.add('correct');\n                        if (opt.dataset.key === answer.selected) addFeedback(opt, true);\n                    } else if (opt.dataset.key === answer.selected) {\n                        opt.classList.add('incorrect');\n                        addFeedback(opt, false);\n                    }\n                });\n            }\n        }\n        function updateProgress() {\n            const quizScreenEl = document.getElementById('quiz-view');\n            if (!quizScreenEl) return;\n            const backBtn = quizScreenEl.querySelector('#back-btn');\n            const nextBtn = quizScreenEl.querySelector('#next-btn');\n            const stepper = quizScreenEl.querySelector('#progress-stepper');\n            if (backBtn) backBtn.disabled = quizState.currentIndex === 0;\n            if (nextBtn) nextBtn.textContent = (quizState.currentIndex === quizState.questions.length - 1) ? 'Finish' : 'Next';\n            if(stepper) {\n                [...stepper.children].forEach((step, i) => {\n                    step.className = 'step';\n                    if (i === quizState.currentIndex) step.classList.add('active');\n                    const answer = quizState.userAnswers[i];\n                    if (answer) step.classList.add(answer.isCorrect ? 'correct' : 'incorrect');\n                });\n            }\n        }\n        function showResults() {\n            stopTimer();\n            const correctCount = quizState.userAnswers.filter(a => a?.isCorrect).length;\n            const totalQuestions = quizState.questions.length;\n            const answeredCount = quizState.userAnswers.filter(a => a !== null).length;\n            const wrongCount = answeredCount - correctCount;\n            const skippedCount = totalQuestions - answeredCount;\n            const accuracy = answeredCount > 0 ? Math.round((correctCount \/ answeredCount) * 100) : 0;\n            const scorePercentage = totalQuestions > 0 ? Math.round((correctCount \/ totalQuestions) * 100) : 0;\n            \n            \/\/ Save quiz state to sessionStorage to persist results\n            sessionStorage.setItem('powerbiQuizResultState', JSON.stringify(quizState));\n\n            \/\/ Populate new results view elements\n            document.querySelector('#new-score-value').innerHTML = `${correctCount}<span>\/${totalQuestions}<\/span>`;\n            document.querySelector('#new-accuracy-label').textContent = `${accuracy}% Accuracy`;\n            document.querySelector('#new-right-value').textContent = correctCount;\n            document.querySelector('#new-wrong-value').textContent = wrongCount;\n            document.querySelector('#new-skipped-value').textContent = skippedCount;\n            \n            \/\/ Animate progress circle\n            const circle = document.getElementById('score-circle');\n            const radius = circle.r.baseVal.value;\n            const circumference = radius * 2 * Math.PI;\n            circle.style.strokeDasharray = `${circumference} ${circumference}`;\n            setTimeout(() => {\n                const offset = circumference - scorePercentage \/ 100 * circumference;\n                circle.style.strokeDashoffset = offset;\n            }, 100);\n            \n            setupShareLinks(correctCount, accuracy);\n            showScreen('results-view');\n        }\n        function setupShareLinks(score, accuracy) {\n            const url = window.location.href;\n            const text = `I scored ${score}\/${quizState.questions.length} on the ${quizState.difficulty} Power BI Quiz! Can you beat my score?`;\n            const title = 'Power BI Quiz Challenge';\n            \n            \/\/ Update to new share link IDs\n            document.getElementById('new-share-whatsapp').onclick = (e) => { e.preventDefault(); window.open(`https:\/\/api.whatsapp.com\/send?text=${encodeURIComponent(text + '\\n\\n' + url)}`, '_blank'); };\n            document.getElementById('new-share-twitter').onclick = (e) => { e.preventDefault(); window.open(`https:\/\/twitter.com\/intent\/tweet?url=${encodeURIComponent(url)}&text=${encodeURIComponent(text)}`, '_blank'); };\n            document.getElementById('new-share-linkedin').onclick = (e) => { e.preventDefault(); window.open(`https:\/\/www.linkedin.com\/shareArticle?mini=true&url=${encodeURIComponent(url)}&title=${encodeURIComponent(title)}&summary=${encodeURIComponent(text)}`, '_blank'); };\n            document.getElementById('new-share-telegram').onclick = (e) => { e.preventDefault(); window.open(`https:\/\/t.me\/share\/url?url=${encodeURIComponent(url)}&text=${encodeURIComponent(text)}`, '_blank'); };\n        }\n        function handleUserDetailsSubmit(event) {\n            event.preventDefault();\n            const form = document.getElementById('user-details-form');\n            const name = form.querySelector('#user-name').value.trim();\n            const email = form.querySelector('#user-email').value.trim();\n            if (!name || !email) { alert('Please fill in both your name and email.'); return; }\n            const expirationTime = new Date().getTime() + (60 * 24 * 60 * 60 * 1000); \/\/ 60 days\n            localStorage.setItem('quizUserInfo', JSON.stringify({ expires: expirationTime }));\n            \n            \/\/ Submit to Google Form\n            const formURL = \"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLScAVF17oENbZXTwsTuQ7VzwLPeT6IG5iilch2LoEoYsbzik5A\/formResponse\";\n            const formData = new FormData();\n            formData.append(\"entry.1956958717\", name); \/\/ Name field\n            formData.append(\"entry.1149718564\", email); \/\/ Email field\nformData.append(\"entry.1658362758\", window.location.href);\n            fetch(formURL, { method: \"POST\", body: formData, mode: \"no-cors\" }).catch(console.error);\n            form.reset();\n            startQuiz(selectedDifficulty);\n        }\n        \/\/ --- EVENT LISTENERS ---\n        document.getElementById('user-details-form').addEventListener('submit', handleUserDetailsSubmit);\n        document.getElementById('back-to-menu-btn').addEventListener('click', () => showMainMenu(false));\n        document.getElementById('back-to-results-btn').addEventListener('click', () => showScreen('results-view'));\n        document.getElementById('next-btn').addEventListener('click', () => {\n             if (quizState.currentIndex < quizState.questions.length - 1) {\n                 quizState.currentIndex++;\n                 loadQuestion();\n             } else {\n                 showResults();\n             }\n         });\n        document.getElementById('back-btn').addEventListener('click', () => {\n             if (quizState.currentIndex > 0) {\n                 quizState.currentIndex--;\n                 loadQuestion();\n             }\n         });\n        document.getElementById('hint-toggle').addEventListener('click', () => {\n             document.getElementById('hint-text').classList.toggle('hidden');\n             document.getElementById('hint-toggle').classList.toggle('open');\n         });\n        document.getElementById('analyse-btn').addEventListener('click', () => {\n            const analysisByCat = quizState.questions.reduce((acc, { category }, i) => {\n                if (!acc[category]) acc[category] = { total: 0, correct: 0, correctQs: [], incorrectQs: [] };\n                acc[category].total++;\n                const answer = quizState.userAnswers[i];\n                if (answer?.isCorrect) {\n                    acc[category].correct++;\n                    acc[category].correctQs.push(i + 1);\n                } else if (answer) {\n                    acc[category].incorrectQs.push(i + 1);\n                }\n                return acc;\n            }, {});\n            const analysisModalBody = document.getElementById('analysis-body');\n            analysisModalBody.innerHTML = Object.entries(analysisByCat).map(([category, data]) => {\n                const percentage = data.total > 0 ? Math.round((data.correct \/ data.total) * 100) : 0;\n                return `<div class=\"category-analysis\"><div class=\"category-header\"><h3 id=\"category\">${category}<\/h3><div class=\"category-score\">${percentage}% Correct<\/div><\/div><div class=\"progress-bar-bg\"><div class=\"progress-bar-fg\" style=\"width: ${percentage}%;\"><\/div><\/div><div class=\"question-breakdown\">${data.correctQs.length > 0 ? `<p><strong>Correct:<\/strong> Q${data.correctQs.join(', Q')}<\/p>` : ''}${data.incorrectQs.length > 0 ? `<span>Incorrect:<\/span> Q${data.incorrectQs.join(', Q')}` : ''}<\/div><\/div>`;\n            }).join('');\n            showScreen('analysis-view');\n        });\n\n        \/\/ --- INITIALIZATION ---\n        \/\/ Check for saved results on page load\n        const savedStateJSON = sessionStorage.getItem('powerbiQuizResultState');\n        if (savedStateJSON) {\n            try {\n                quizState = JSON.parse(savedStateJSON);\n                \/\/ Stop any lingering timers if the user refreshed mid-quiz\n                if (quizState.timerInterval) clearInterval(quizState.timerInterval);\n                showResults();\n            } catch (e) {\n                console.error(\"Failed to parse saved quiz state.\", e);\n                sessionStorage.removeItem('powerbiQuizResultState');\n                showScreen('main-menu-view');\n            }\n        } else {\n            showScreen('main-menu-view');\n        }\n    });\n    <\/script>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p><strong>Also Check:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.mygreatlearning.com\/data-visualization\/free-courses\">Free Data Visualization Courses<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.mygreatlearning.com\/blog\/top-power-bi-interview-questions-and-answers\/\">Power BI Interview Questions and Answers<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.mygreatlearning.com\/blog\/power-bi-vs-tableau\/\">Power BI vs Tableau: Which is better?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.mygreatlearning.com\/blog\/data-visualisation-and-bi-tools-to-use\/\">Best Data Visualization Tools<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.<\/p>\n","protected":false},"author":41,"featured_media":109771,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9],"tags":[36883,36874],"class_list":["post-109389","page","type-page","status-publish","has-post-thumbnail","hentry","category-data-science","tag-power-bi","tag-quiz"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Power BI Quiz \u2013 Practice Power BI MCQs for All Levels<\/title>\n<meta name=\"description\" content=\"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Power BI Quiz\" \/>\n<meta property=\"og:description\" content=\"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/\" \/>\n<meta property=\"og:site_name\" content=\"Great Learning Blog: Free Resources what Matters to shape your Career!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GreatLearningOfficial\/\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Great_Learning\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/\"},\"author\":{\"name\":\"Great Learning Editorial Team\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\"},\"headline\":\"Power BI Quiz\",\"datePublished\":\"2025-07-08T13:40:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/\"},\"wordCount\":341,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/power-bi-quiz.webp\",\"keywords\":[\"power bi\",\"quiz\"],\"articleSection\":[\"Data Science and Analytics\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/\",\"name\":\"Power BI Quiz \u2013 Practice Power BI MCQs for All Levels\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/power-bi-quiz.webp\",\"datePublished\":\"2025-07-08T13:40:16+00:00\",\"description\":\"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/power-bi-quiz.webp\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/power-bi-quiz.webp\",\"width\":1408,\"height\":768,\"caption\":\"Power BI quiz\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/power-bi-quiz\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Power BI Quiz\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"name\":\"Great Learning Blog\",\"description\":\"Learn, Upskill &amp; Career Development Guide and Resources\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"alternateName\":\"Great Learning\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\",\"name\":\"Great Learning\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"width\":900,\"height\":900,\"caption\":\"Great Learning\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/GreatLearningOfficial\\\/\",\"https:\\\/\\\/x.com\\\/Great_Learning\",\"https:\\\/\\\/www.instagram.com\\\/greatlearningofficial\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/in.pinterest.com\\\/greatlearning12\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/beaconelearning\\\/\"],\"description\":\"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.\",\"email\":\"info@mygreatlearning.com\",\"legalName\":\"Great Learning Education Services Pvt. Ltd\",\"foundingDate\":\"2013-11-29\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\",\"name\":\"Great Learning Editorial Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"caption\":\"Great Learning Editorial Team\"},\"description\":\"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.\",\"sameAs\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/\",\"https:\\\/\\\/in.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/Great_Learning\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCObs0kLIrDjX2LLSybqNaEA\"],\"award\":[\"Best EdTech Company of the Year 2024\",\"Education Economictimes Outstanding Education\\\/Edtech Solution Provider of the Year 2024\",\"Leading E-learning Platform 2024\"],\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/author\\\/greatlearning\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Power BI Quiz \u2013 Practice Power BI MCQs for All Levels","description":"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/","og_locale":"en_US","og_type":"article","og_title":"Power BI Quiz","og_description":"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.","og_url":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/","og_site_name":"Great Learning Blog: Free Resources what Matters to shape your Career!","article_publisher":"https:\/\/www.facebook.com\/GreatLearningOfficial\/","og_image":[{"width":1408,"height":768,"url":"http:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@Great_Learning","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#article","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/"},"author":{"name":"Great Learning Editorial Team","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad"},"headline":"Power BI Quiz","datePublished":"2025-07-08T13:40:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/"},"wordCount":341,"publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp","keywords":["power bi","quiz"],"articleSection":["Data Science and Analytics"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/","url":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/","name":"Power BI Quiz \u2013 Practice Power BI MCQs for All Levels","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#primaryimage"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp","datePublished":"2025-07-08T13:40:16+00:00","description":"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.","breadcrumb":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#primaryimage","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp","width":1408,"height":768,"caption":"Power BI quiz"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mygreatlearning.com\/blog\/power-bi-quiz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.mygreatlearning.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Power BI Quiz"}]},{"@type":"WebSite","@id":"https:\/\/www.mygreatlearning.com\/blog\/#website","url":"https:\/\/www.mygreatlearning.com\/blog\/","name":"Great Learning Blog","description":"Learn, Upskill &amp; Career Development Guide and Resources","publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"alternateName":"Great Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mygreatlearning.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization","name":"Great Learning","url":"https:\/\/www.mygreatlearning.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","width":900,"height":900,"caption":"Great Learning"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GreatLearningOfficial\/","https:\/\/x.com\/Great_Learning","https:\/\/www.instagram.com\/greatlearningofficial\/","https:\/\/www.linkedin.com\/school\/great-learning\/","https:\/\/in.pinterest.com\/greatlearning12\/","https:\/\/www.youtube.com\/user\/beaconelearning\/"],"description":"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.","email":"info@mygreatlearning.com","legalName":"Great Learning Education Services Pvt. Ltd","foundingDate":"2013-11-29","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad","name":"Great Learning Editorial Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","caption":"Great Learning Editorial Team"},"description":"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.","sameAs":["https:\/\/www.mygreatlearning.com\/","https:\/\/in.linkedin.com\/school\/great-learning\/","https:\/\/x.com\/https:\/\/twitter.com\/Great_Learning","https:\/\/www.youtube.com\/channel\/UCObs0kLIrDjX2LLSybqNaEA"],"award":["Best EdTech Company of the Year 2024","Education Economictimes Outstanding Education\/Edtech Solution Provider of the Year 2024","Leading E-learning Platform 2024"],"url":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp",1408,768,false],"thumbnail":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-150x150.webp",150,150,true],"medium":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-300x164.webp",300,164,true],"medium_large":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-768x419.webp",768,419,true],"large":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-1024x559.webp",1024,559,true],"1536x1536":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp",1408,768,false],"2048x2048":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz.webp",1408,768,false],"web-stories-poster-portrait":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-640x768.webp",640,768,true],"web-stories-publisher-logo":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-96x96.webp",96,96,true],"web-stories-thumbnail":["https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2025\/07\/power-bi-quiz-150x82.webp",150,82,true]},"uagb_author_info":{"display_name":"Great Learning Editorial Team","author_link":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"},"uagb_comment_info":0,"uagb_excerpt":"Assess your Power BI skills with expert-level MCQs. From basics to DAX, take the quiz for instant scoring and detailed performance insights.","_links":{"self":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/109389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/comments?post=109389"}],"version-history":[{"count":8,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/109389\/revisions"}],"predecessor-version":[{"id":109772,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/109389\/revisions\/109772"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media\/109771"}],"wp:attachment":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media?parent=109389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/categories?post=109389"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/tags?post=109389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}