Salesforce Admin Zero to Hero - Module 19: Reports | SF Interview Pro
📈 Salesforce Admin Zero to Hero — Module 19 of 25
Reports
Phase 5 begins. Everything built across this course — objects, automation, approvals — ultimately exists to produce data worth looking at. Reports are how that data becomes genuine business insight.
Module 19 of 25 · Phase 5: Reporting & UI (Begins!)
📊 Welcome to Phase 5: Reporting & UI. Modules 19 through 22 cover Reports, Dashboards, App Builder & Page Layouts, and Lightning Experience & Mobile — turning everything built in Phases 1 through 4 into something people actually see, use, and make decisions from every day.
🎯 What You Will Master in This Module
A Report is a customizable view of Salesforce data — filtered, grouped, and summarized without writing a single line of SOQL. This module covers the full Report-building toolkit, from choosing the right Report Type through building genuinely useful, decision-driving reports for a real business.
✓ Report Types — Standard vs Custom, and why this single choice determines everything else
✓ The four Report Formats — Tabular, Summary, Matrix, and Joined
✓ Filters — standard, field, and cross-filters for genuinely precise data slicing
✓ Groupings and Summary Fields — turning raw rows into meaningful aggregates
✓ Report Formulas — Summary and Row-Level, calculating values Report Types don't provide natively
✓ Report Folders and sharing — controlling who sees which reports
✓ Building a real, multi-layered report answering an actual business question
📋 In This Module
Concept 1 of 7
Report Types — Standard vs Custom, and Why This Choice Determines Everything Else
A Report Type is the underlying template defining WHICH OBJECTS and WHICH FIELDS are even available to a report before you build anything. Salesforce provides Standard Report Types automatically for common object relationships, while Custom Report Types let an Admin define genuinely new combinations, especially involving Custom Objects (Module 8) or relationships Standard Report Types do not cover.
⚡ Why This Matters
If the fields or object combination you need are not available in the Report Type you started with, no amount of clever filtering or grouping inside the report itself can add them — the Report Type is chosen BEFORE report-building even begins, and getting it wrong means starting over with a different one entirely.
| Standard Report Type | Custom Report Type | |
|---|---|---|
| Created by | Automatically provided by Salesforce for common relationships (e.g. Opportunities with Products) | Built explicitly by an Admin, defining the object relationship and available fields |
| Covers Custom Objects? | Only if a Standard relationship happens to exist — rarely for genuinely custom data | Yes — this is exactly why Custom Report Types exist, to expose Module 8's custom objects to Reports |
| Object relationship depth | Fixed, pre-defined by Salesforce | Admin-defined, up to 4 objects deep, including "with or without" related records |
🛠️ Hands-On: Create a Custom Report Type for Your Module 8 Objects
1Setup → Quick Find → Report Types → click New Custom Report Type
2Primary Object:
Quality Inspection (from Module 8). Report Type Label: Quality Inspections with Line Items.3Click through to define the relationship → select Inspection Line Item as a related object, choosing "Quality Inspections with or without related Inspection Line Items" — this "with or without" option matters, covered further in the gotcha below.
4Save, then click Edit Layout to confirm which fields from both objects are available for reports built on this new Report Type — add any fields not shown by default.
5Go to the Reports tab → New Report → confirm your new Custom Report Type now appears as an option, ready to actually build a report from in later concepts.
⚠️ Common Gotcha — "With" vs "With or Without" Related Records
When defining a Custom Report Type's relationship, choosing "Quality Inspections WITH Inspection Line Items" EXCLUDES any Quality Inspection that has zero Line Items from ever appearing in reports built on this Report Type — even though the parent record genuinely exists. Choosing "WITH OR WITHOUT" includes parent records regardless of whether related child records exist. This single setting is a very common source of "why is this record missing from my report" confusion, and should be chosen deliberately based on whether parent-only records are meant to be visible.
Concept 2 of 7
The Four Report Formats — Tabular, Summary, Matrix, and Joined
A Report's Format determines how the underlying data is actually laid out and summarized on screen. Choosing the right format for a given question is as important as choosing the right Report Type — each format is genuinely suited to a different kind of analysis.
⚡ Why This Matters
A Tabular report cannot show subtotals grouped by Stage; a Summary report with only one grouping level cannot cross-tabulate two dimensions at once. Choosing the wrong format means either missing the insight entirely, or building unnecessary complexity to work around a format limitation that a different format would not have had in the first place.
| Format | Structure | Best For |
|---|---|---|
| Tabular | A simple flat list of rows and columns, no grouping | Simple record lists, exports, feeding a Report Chart's raw data |
| Summary | Rows grouped by one or more fields, with subtotals per group | "Opportunities grouped by Stage, with subtotal Amount per Stage" |
| Matrix | Data grouped by TWO dimensions simultaneously — rows AND columns | "Opportunity Amount by Sales Rep (rows) AND by Quarter (columns)" — a genuine cross-tab |
| Joined | Multiple separate report "blocks" from different Report Types, shown side by side | Comparing genuinely different data sets, like Opportunities and Cases, in one combined view |
🛠️ Hands-On: Build the Same Data in Three Different Formats
1Reports tab → New Report → Report Type:
Opportunities (standard) → start as Tabular format by default.2Add columns: Opportunity Name, Stage, Amount, Close Date → Save as
Opportunities - Tabular View. Notice this is just a flat list, no subtotals.3Change the Format to Summary → group rows by Stage → notice subtotal Amount now appears per Stage, plus a Grand Total.
4Change the Format to Matrix → group rows by Stage AND group columns by Close Month (or Owner) → notice this now shows a genuine two-dimensional cross-tab, something Summary format alone cannot produce.
5Save each variation with a distinct name so you can compare all three side by side later.
💡 Joined Reports Combine Genuinely Different Report Types
Joined Reports are structurally different from the other three — rather than one dataset shown differently, they let you place multiple SEPARATE report blocks (each potentially built on a different Report Type entirely, like Opportunities in one block and Cases in another) onto a single report, common when a stakeholder needs to see genuinely unrelated metrics side by side without switching between multiple reports.
Concept 3 of 7
Filters — Standard, Field, and Cross-Filters
Filters narrow down exactly which records appear in a report. Beyond the basic Filter Logic seen in nearly every Salesforce tool throughout this course, Reports specifically offer Cross-Filters — a genuinely distinct mechanism for filtering based on the EXISTENCE (or absence) of related records, without needing those related records' fields to appear in the report itself.
⚡ Why This Matters
A requirement like "show me all Accounts that have NO Opportunities at all" cannot be expressed with a normal field filter, since there is no field ON the Account itself directly answering "do I have any Opportunities." Cross-Filters exist specifically to answer this class of question.
| Filter Type | What It Does |
|---|---|
| Standard Filter | Field-based conditions, like Stage Equals "Closed Won" — the most common filter type |
| Field Filter (Filter Logic) | Combining multiple Standard Filters with AND/OR logic, similar to Validation Rule condition building |
| Cross-Filter | Filters based on WHETHER related records exist at all — "Accounts WITH Opportunities" or "Accounts WITHOUT Opportunities" |
🛠️ Hands-On: Build a Cross-Filter Report
1Reports tab → New Report → Report Type:
Accounts (standard).2In the Filters panel, click Add Cross Filter → set:
Accounts WITHOUT Opportunities.3Run the report → confirm it shows only Accounts genuinely having zero related Opportunity records — exactly the "accounts we've never engaged with" list a Sales Manager might request.
4Change the Cross-Filter to
WITH instead of WITHOUT → confirm the result flips to show only Accounts that DO have at least one Opportunity, demonstrating the exact opposite question answered by the same mechanism.⚠️ Common Gotcha — Standard Filters Cannot Answer "Do Any Exist" Questions
A very common beginner mistake is trying to answer "show Accounts with no Opportunities" using a standard field filter, which is structurally impossible since there is no single field capturing "count of related Opportunities" on the Account by default (without a Roll-Up Summary Field, Module 8, which only works on Master-Detail relationships anyway, and Account-Opportunity is not Master-Detail). Recognizing when a requirement genuinely needs a Cross-Filter rather than a Standard Filter is an important report-design skill.
Concept 4 of 7
Groupings & Summary Fields — Turning Rows Into Meaningful Aggregates
Groupings (used already in Concept 2's Summary and Matrix formats) organize rows by a shared field value, while Summary Fields define WHAT aggregate calculation appears for each group — Sum, Average, Max, Min, or simply a Record Count.
⚡ Why This Matters
A flat list of 500 Opportunity rows tells a manager very little at a glance. The same 500 rows, grouped by Stage with a Sum of Amount per group, immediately answers "where is our pipeline concentrated" — this transformation from raw rows to meaningful aggregates is genuinely the core value Reports provide over simply looking at a list view.
Grouping + Summary Field, conceptually:
Ungrouped (Tabular): 500 individual Opportunity rows
↓ group by Stage, summarize Amount as SUM
Grouped (Summary):
Prospecting → 120 records, Sum Amount = $2.1M
Negotiation → 45 records, Sum Amount = $3.8M
Closed Won → 210 records, Sum Amount = $8.5M
Closed Lost → 125 records, Sum Amount = $1.2M
Grand Total → 500 records, Sum Amount = $15.6M
One glance now answers "where is our pipeline," which
500 raw rows never could on their own.
🛠️ Hands-On: Add Multiple Grouping Levels and Summary Fields
1Go back to your Concept 2 Summary-format Opportunities report → confirm it is grouped by Stage.
2Add a SECOND grouping level, nested inside Stage: group by Opportunity Owner — notice each Stage group now further breaks down by Owner underneath it.
3Click the dropdown on the Amount column header → add both Sum and Average as Summary Fields simultaneously — confirm both appear at every grouping level.
4Add a Summary Field of type Record Count as well → confirm you can now see, per Owner within each Stage, exactly how many Opportunities, their total value, and their average value — three distinct insights from one grouped report.
💡 Collapse and Expand Groups for Presentation
Once a report has multiple grouping levels, the small arrow icons next to each group let you collapse or expand that specific group directly in the report viewer — genuinely useful when presenting a report live to a stakeholder who wants to see the high-level Stage totals first, then drill into a specific Stage's Owner breakdown only when they ask, rather than showing every level of detail at once.
Concept 5 of 7
Report Formulas — Summary and Row-Level
Report Formulas let you calculate a NEW value directly within a report, using the same underlying formula language from Module 11's Formula Fields, but scoped specifically to the report itself rather than being a permanent field on the object. Two types exist: Summary Formulas (one calculated value per group/grand total) and Row-Level Formulas (a calculated value on every individual row).
⚡ Why This Matters
Not every calculation is worth permanently adding as a Formula Field on the object (Module 11) — sometimes a calculation is only meaningful WITHIN the context of one specific report, like "percentage of total pipeline this Stage represents," which genuinely depends on the report's own grouped totals, not just the underlying record's own fields.
| Formula Type | Scope | Example |
|---|---|---|
| Summary Formula | One calculated value per grouping level and Grand Total — cannot reference individual row-level fields | SUM(Amount) / PARENTGROUPVAL(SUM(Amount), GRAND_SUMMARY) — this Stage's share of Grand Total |
| Row-Level Formula | A calculated value shown on every individual data row, like a temporary Formula Field just for this report | Combining two fields into one display string, row by row |
🛠️ Hands-On: Add a Summary Formula Calculating Percent of Total
1Go back to your Concept 4 grouped report (Stage → Owner, with Sum of Amount).
2Click Add Formula in the columns panel → select Summary Formula.
3Label it
% of Total Pipeline, Format: Percent.4Formula:
SUM(Amount) / PARENTGROUPVAL(SUM(Amount), GRAND_SUMMARY) — using PARENTGROUPVAL() to reference the Grand Total specifically.5Save and confirm each Stage grouping now shows exactly what percentage of the total pipeline it represents — a genuinely useful insight that required a Report Formula, not a permanent object-level Formula Field, since it depends entirely on this specific report's own grouped context.
⚠️ Common Gotcha — Summary Formulas Cannot Reference Row-Level Field Values
A Summary Formula operates on already-aggregated values (SUM, AVG, etc. of a grouping) — it cannot reach down and reference an individual row's raw field value directly, since it exists specifically at the grouping/total level, not the row level. If a calculation genuinely needs to work with individual row values before any aggregation happens, a Row-Level Formula is the correct type instead, not a Summary Formula.
Concept 6 of 7
Report Folders & Sharing — Controlling Who Sees Which Reports
Reports live inside Report Folders, and folder-level sharing settings determine WHO can view, edit, or manage the reports inside that folder — genuinely distinct from, but interacting with, the record-level Sharing Model from Module 5 that still governs which underlying DATA a given user can actually see when they run any report.
⚡ Why This Matters
Sharing a report does NOT bypass the underlying record-level security from Module 5 — a user given access to view a report folder still only sees, within that report, records they would otherwise have access to see anyway. Folder sharing controls access to the REPORT DEFINITION; the Sharing Model still controls the actual DATA shown when it runs.
Two independent layers working together:
FOLDER SHARING (this module)
Controls: can this user even SEE this report exists,
and can they View/Edit/Manage it
RECORD-LEVEL SHARING (Module 5)
Controls: when this user RUNS the report, which
underlying records actually appear in the results,
based on their own OWD/Role/Sharing Rule access
A user with folder access to a report, but with RESTRICTED
record-level access to the underlying Opportunities, will
run that exact same report and see FEWER rows than a user
with broader record access — same report, different results,
because Sharing Model access is per-user, not per-report.
🛠️ Hands-On: Create a Folder and Set Sharing
1Reports tab → click New Folder → Name it
Sales Pipeline Reports.2Move your Concept 2 and Concept 4 reports into this new folder (via Save As, choosing this folder as the destination, or using the report's own Move option).
3Click Share on the folder → add your Test User (from Module 2) with Viewer access.
4Conceptually verify: if your Test User's Profile/Role/Sharing access (Modules 3-5) only allows them to see their OWN Opportunities, running these shared reports as that user would show only their own records, not the full dataset you see as Admin — demonstrating the two independent layers from the diagram above.
💡 "Run As Specified User" Prevents This Layering for Dashboards Later
Module 20 introduces Dashboards, which can be configured to run using a SPECIFIED user's access (showing everyone the exact same data, ignoring their individual record-level access) rather than each viewer's own access — a deliberately different behavior worth noting now, since it directly contrasts with how Reports themselves always respect each individual viewer's own record-level Sharing Model access.
Concept 7 of 7
Building a Real, Multi-Layered Report Answering a Genuine Business Question
This final concept combines everything from this module into one complete, realistic report answering a genuine business question — exactly the kind of deliverable a Sales Manager or Executive would actually request from an Admin.
⚡ Why This Matters
Real report requests rarely specify "use a Matrix format with a Cross-Filter and a Summary Formula" — they specify a plain-language business question, and translating that question into the right combination of Report Type, Format, Filters, Groupings, and Formulas is the practical skill this entire module has been building toward.
Business question: "Show me which Sales Reps have the
highest average deal size among deals that actually closed
this fiscal year, and flag any Rep whose average is below
half the team average."
Design decisions:
Report Type: Opportunities (standard) — no custom object needed
Format: Summary, grouped by Opportunity Owner
Filters: StageName = "Closed Won", Close Date = Current FY
(Module 1's Fiscal Year setting directly applies here)
Summary Field: Average of Amount, per Owner
Summary Formula: comparing each Owner's average against
a team-wide average using PARENTGROUPVAL(), flagging
anyone below half that benchmark
🛠️ Hands-On: Build This Exact Report
1Reports tab → New Report → Report Type:
Opportunities → Format: Summary, grouped by Opportunity Owner.2Filters:
Stage Equals Closed Won, Close Date Equals Current FY (using the Fiscal Year setting from Module 1).3Add Summary Field: Average of Amount.
4Add a Summary Formula, Label
Below Half Team Average?, Format: Checkbox, Formula: AVG(Amount) < (PARENTGROUPVAL(AVG(Amount), GRAND_SUMMARY) / 2)5Save as
Rep Performance - Avg Deal Size, move it into your Concept 6 folder, and run it → confirm it correctly identifies any Rep whose average deal size falls below half the team-wide average, exactly answering the original business question end to end.⚠️ Module Wrap-Up — What Comes Next
You can now design and build genuinely useful Reports across all four formats, using precise filtering including Cross-Filters, multi-level grouping, both Summary and Row-Level Formulas, and appropriate folder sharing — all while understanding how record-level Sharing Model access (Module 5) continues to govern actual results per user. Module 20 covers Dashboards — visualizing this same reported data for genuinely fast, at-a-glance business decisions, including the "Run As Specified User" behavior previewed in this module's Concept 6.
💬 Module 19 Interview Questions (6)
Q1An Admin needs to build a report on a custom object with fields that do not appear in any available Standard Report Type. What is the solution, and why can't this be worked around by simply adding filters within an existing report?
The solution is creating a Custom Report Type, explicitly defining the object (or objects, including relationships) and specifically selecting which fields should be available for reports built on that Report Type, since Custom Report Types exist precisely to expose data — especially custom objects and their relationships — that Standard Report Types were never automatically generated to cover. This cannot be worked around with filters within an existing report because the Report Type is chosen and locked in BEFORE any report-building begins, and it fundamentally determines the entire universe of fields and objects available to work with; filters can only narrow down which RECORDS appear among what the Report Type already exposes, they cannot add entirely new fields or objects that the underlying Report Type never included in the first place. If the needed fields simply are not present in the Report Type's available field list, no combination of filtering, grouping, or formulas within the report itself can retroactively add them.
"Build a Custom Report Type explicitly including the needed object and fields — filters cannot work around this because the Report Type is chosen before report-building begins and defines the entire universe of available fields and objects; filters only narrow which records appear among what's already exposed, they cannot add fields the Report Type never included."
Q2A Sales Manager wants to see Opportunity Amount broken down by both Sales Rep (rows) and Fiscal Quarter (columns) simultaneously, in one view. Which Report Format is required, and why won't Summary format alone satisfy this?
Matrix format is required, because this request is fundamentally a two-dimensional cross-tabulation — Amount needs to be broken down by TWO independent grouping dimensions simultaneously, Sales Rep along one axis and Fiscal Quarter along the other, with the intersecting cells showing the summarized value for each specific Rep-and-Quarter combination. Summary format alone cannot satisfy this because it only supports grouping along a single dimension, expressed as nested ROW groupings — while Summary format could show Amount grouped by Sales Rep, and even add a second nested grouping level like Fiscal Quarter underneath each Rep, this would produce a long vertical list of nested groups rather than the genuine side-by-side, at-a-glance cross-tab structure the Sales Manager is actually asking for, where Quarters run across the top as columns and Reps run down the side as rows, letting patterns across both dimensions be compared visually in one compact grid.
"Matrix format — this is a genuine two-dimensional cross-tab (Rep by row, Quarter by column simultaneously). Summary format only supports one-dimensional grouping (even with nested levels, it's still a vertical list of groups), not the side-by-side grid structure a true cross-tabulation requires."
Q3What is a Cross-Filter, and what specific class of business question can it answer that a standard field filter structurally cannot?
A Cross-Filter filters records based on the EXISTENCE or ABSENCE of related records, rather than based on any field value on the record being reported on itself — for example, filtering Accounts based on whether they DO or DO NOT have any related Opportunity records at all. This answers a specific class of question that standard field filters are structurally incapable of addressing: "how many of these exist" or "do any related records exist" questions, since a standard field filter can only evaluate conditions against fields that actually exist ON the record being filtered, and there is typically no field on an Account directly capturing "count of related Opportunities" unless a Roll-Up Summary Field happens to exist for that specific purpose, which itself only works on Master-Detail relationships in the first place. A requirement like "show me every Account with zero Opportunities" is precisely the kind of relationship-existence question Cross-Filters were purpose-built to answer, where standard filtering has no mechanism to express the concept at all.
"A Cross-Filter filters based on whether related records exist at all (WITH or WITHOUT), not based on any field value on the record itself — this answers 'do any related records exist' questions that standard field filters structurally cannot express, since there's typically no field capturing a related-record count directly on the parent."
Q4Why might a report calculation be better suited to a Report Formula rather than a permanent Formula Field on the object itself?
A Report Formula is the better fit when the calculation's meaning is genuinely dependent on the specific report's own context — particularly its grouping structure and aggregated totals — rather than being a standalone value that makes sense independent of any particular report, which is what a permanent object-level Formula Field is designed for. A calculation like "this Stage's percentage share of total pipeline," using PARENTGROUPVAL() to reference a Grand Summary total, only has meaning within the context of THIS specific report's grouping and filtering — the concept of "total pipeline" varies entirely depending on which records this particular report happens to include, meaning the same underlying Opportunity record's contribution to "percentage of total" would be a completely different number in a different report with different filters. A permanent Formula Field, by contrast, is appropriate for a calculation that produces a consistent, standalone, context-independent value regardless of which report or list view happens to display it, such as a straightforward date-difference calculation that means the same thing everywhere it appears.
"A Report Formula fits when the calculation's meaning genuinely depends on THIS report's own grouping and totals (like percentage-of-total-pipeline using PARENTGROUPVAL) — a permanent Formula Field fits when the calculation produces a consistent, standalone value regardless of which report or view happens to display it."
Q5Two users are both given Viewer access to the same Report Folder. When they each run the same report inside it, they see different numbers of rows in the results. Is this a bug, and if not, what explains it?
This is not a bug — it is the expected, correct interaction between two genuinely independent access layers. Folder sharing, which is what gave both users Viewer access to see and run this specific report, only controls whether a user can access the REPORT DEFINITION itself; it does not override or bypass each individual user's own record-level access governed by the Sharing Model from Module 5, meaning Organization-Wide Defaults, Role Hierarchy, Sharing Rules, and Manual Sharing all still apply exactly as they would if the user were browsing the underlying records directly rather than through a report. If one user has broader record-level access than the other, perhaps due to a higher position in the Role Hierarchy or membership in a Sharing Rule's target audience, they will see more underlying records reflected in the report's results, even though both users are running the literally identical report definition from the identically shared folder. This is precisely why folder sharing and record-level sharing must be understood as two separate, independently-operating layers rather than a single unified access control.
"Not a bug — folder sharing only controls access to the report DEFINITION, it never overrides each user's own record-level Sharing Model access (OWD, Role Hierarchy, Sharing Rules). Two users can run the identical shared report and see different row counts because their underlying record-level access genuinely differs, exactly as it would browsing the records directly."
Q6Design a report (describing the Report Type, Format, Filters, Grouping, and any Formula needed) answering: "Which Sales Reps closed deals this fiscal year with an average deal size below half the overall team average?"
This uses the standard Opportunities Report Type, since no custom object is involved, in Summary format grouped by Opportunity Owner, since the requirement needs a per-Rep breakdown rather than a two-dimensional cross-tab, so Matrix format is not necessary here. Filters need Stage equals Closed Won, to scope to deals that genuinely closed rather than all pipeline activity, combined with Close Date equal to Current Fiscal Year, directly leveraging the Fiscal Year configuration from Module 1 to correctly scope the time period regardless of the company's specific fiscal calendar. The core metric requires an Average Summary Field on the Amount column, giving each Rep's average deal size as a grouped aggregate. Finally, answering the comparative "below half the team average" part specifically requires a Summary Formula, since this depends on comparing each Rep's own grouped average against a team-wide Grand Summary average — using PARENTGROUPVAL(AVG(Amount), GRAND_SUMMARY) to reference that team-wide average, dividing it by two, and comparing each Rep's own AVG(Amount) against that benchmark, returning a Checkbox or similar flag wherever a Rep's average falls below that threshold.
"Opportunities Report Type, Summary format grouped by Owner, filtered to Stage=Closed Won and Close Date=Current FY, with an Average Summary Field on Amount, plus a Summary Formula using PARENTGROUPVAL(AVG(Amount), GRAND_SUMMARY) divided by two to flag any Rep whose own average falls below that team-wide half-benchmark."
📝 Module 19 Recap — Reports Mastered
✅ Report Type is chosen before building begins and defines the entire universe of available fields — Custom Report Types expose custom objects Standard Types don't cover
✅ "With or Without" related records in a Custom Report Type determines whether parent-only records appear at all — a common source of missing-record confusion
✅ Four formats: Tabular (flat), Summary (one-dimensional grouping), Matrix (two-dimensional cross-tab), Joined (multiple report blocks together)
✅ Cross-Filters answer "do related records exist" questions that standard field filters structurally cannot express
✅ Groupings plus Summary Fields (Sum/Avg/Max/Min/Count) turn raw rows into genuinely meaningful, decision-driving aggregates
✅ Summary Formulas use PARENTGROUPVAL() to reference grouped/grand totals; Row-Level Formulas calculate per-record like a temporary Formula Field
✅ Folder sharing controls WHO can access a report; record-level Sharing Model (Module 5) still controls WHAT DATA each individual viewer actually sees when they run it
🎯 Module 19 Practical Checklist — Complete These in Your Org
1. Create a Custom Report Type exposing your Module 8 custom objects to Reports.
2. Build the same underlying data as Tabular, Summary, and Matrix reports to compare formats directly.
3. Build a Cross-Filter report showing Accounts without any related Opportunities.
4. Add multi-level grouping and multiple Summary Fields (Sum, Average, Count) to one report.
5. Add a Summary Formula using PARENTGROUPVAL() to calculate percentage of total.
6. Build the full Rep Performance report from Concept 7, and organize it into a shared folder.
Module 20 covers Dashboards — visualizing this same reported data for fast, at-a-glance decisions, including the Run As Specified User behavior that contrasts with how Reports themselves always respect individual viewer access.
2. Build the same underlying data as Tabular, Summary, and Matrix reports to compare formats directly.
3. Build a Cross-Filter report showing Accounts without any related Opportunities.
4. Add multi-level grouping and multiple Summary Fields (Sum, Average, Count) to one report.
5. Add a Summary Formula using PARENTGROUPVAL() to calculate percentage of total.
6. Build the full Rep Performance report from Concept 7, and organize it into a shared folder.
Module 20 covers Dashboards — visualizing this same reported data for fast, at-a-glance decisions, including the Run As Specified User behavior that contrasts with how Reports themselves always respect individual viewer access.
Test yourself on this topic
2,244 practice MCQs across 27 quizzes — 5 quizzes free, no signup
RK
Written by
Rajnish Kumar
Salesforce Developer · Apex, LWC, Data Cloud & AI · Building SF Interview Pro
Keep Preparing
Practice with real people
Join the free Mock Interview Community — practice with peers, get honest feedback, and walk into your real interview confident.
Join the Community ↗