Bird
Raised Fist0
Google Sheetsspreadsheet~10 mins

IMPORTXML for structured data in Google Sheets - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the formula to import all the links from a webpage using IMPORTXML.

Google Sheets
=IMPORTXML("https://example.com", "[1]")
Drag options to blanks, or click blank then click option'
A"//img/@src"
B"//a/@href"
C"//p"
D"//div"
Attempts:
3 left
💡 Hint
Common Mistakes
Using XPath that selects elements but not their attributes.
Confusing image sources with links.
2fill in blank
medium

Complete the formula to import all the titles inside <title> tags from a webpage.

Google Sheets
=IMPORTXML("https://example.com", "[1]")
Drag options to blanks, or click blank then click option'
A"//div/title"
B"//body/title"
C"//head/title"
D"//title"
Attempts:
3 left
💡 Hint
Common Mistakes
Using XPath that assumes is inside <body> or <div>.</div><div class="mistake-item">Including extra path steps that are unnecessary.</div></div></div><div class="feedback-box incorrect d-none"><div class="feedback-title">✗ Incorrect</div><div class="feedback-text"><p>The XPath <code>//title</code> selects all <title> tags anywhere in the document.</p></div></div></div></div><div class="puzzle-container " id="puzzle-fill_in_blank-2"><div class="task-card " id="try-t3" data-blank-count="1"><div class="task-header"><div class="task-badge"><span class="task-number">3</span><span class="task-type">fill in blank</span></div><span class="task-difficulty hard">hard</span></div><p class="task-instruction text-pre-wrap ">Fix the error in the formula to import all paragraph texts from a webpage.</p><div class="code-block"><div class="code-header"><span class="code-title">Google Sheets</span></div><pre class="code-content" id="code-t3">=IMPORTXML(<span class="hl-str">"https://example.com"</span>, <span class="code-blank" data-blank="1" data-task="t3">[1]</span>)</pre></div><div class="blank-selection-hint" id="hint-select-t3"><span class="d-flex align-items-center justify-content-center flex-wrap gap-1 line-height-normal"><span class="new-material-symbols icon-hw-22"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#EF4444"><path d="M480-240q-76.33 0-138.83-43.5-62.5-43.5-87.5-115.83-4-12 2-23.34 6-11.33 19-15.33 13-4.33 25.83 2.17 12.83 6.5 18.83 20.83 19.67 49 63.34 78.67 43.66 29.66 97.33 29.66 72 0 122.67-50.66Q653.33-408 653.33-480q0-53-29.83-96.83-29.83-43.84-78.83-63.5-14.67-6-20.67-18.84-6-12.83-1.67-25.83 4.34-13 15.5-19 11.17-6 23.17-2 71 25 115 87.17 44 62.16 44 138.83 0 100-70 170t-170 70Zm0 160q-161.33 0-277.33-110.67-116-110.66-123-271.33-.34-13.33 8.83-23t22.83-10.67q13.67-1 24.5 8.84 10.84 9.83 12.17 24.5 12.67 138 106.17 226.83 93.5 88.83 225.83 88.83 139.33 0 236.33-97t97-236.33q0-133.67-90-228.17T496.67-812q-14.67-1.33-23.84-11.67-9.16-10.33-8.83-24.66.33-13.67 10-22.67 9.67-9 23-8.67 80 3 149.83 36 69.84 33 121.5 87.17Q820-702.33 850-631.17 880-560 880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-97.33-420-132-131-33.34 101Q213-518 201-518.5q-12-.5-15.67-12.5L89.67-850q-2.67-9.33 4.5-16.5 7.16-7.17 16.5-4.5l319 95.67q12 3.66 12.5 15.66t-11.5 16.34l-101 33.33 132 132q17 17 17 39t-17 39q-17 17-39.5 17t-39.5-17Z"></path></svg></span> Drag options to blanks, or click blank then click option'</span></div><div class="fill-options" id="fillOptions-t3"><div class="fill-option " draggable="true" data-key="A" data-task="t3"><span class="option-key">A</span>"//p/text()"</div><div class="fill-option " draggable="true" data-key="B" data-task="t3"><span class="option-key">B</span>"//p"</div><div class="fill-option " draggable="true" data-key="C" data-task="t3"><span class="option-key">C</span>"//text()"</div><div class="fill-option " draggable="true" data-key="D" data-task="t3"><span class="option-key">D</span>"p/text()"</div></div><button class="verify-btn" id="verifyBtn-t3" disabled=""><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 13l4 4L19 7"></path></svg>Verify Answer</button><div class="attempts-counter" id="attempts-t3"><span>Attempts:</span><div class="attempts-dots"><span class="attempt-dot "></span><span class="attempt-dot "></span><span class="attempt-dot "></span></div><span id="attemptsLeft-t3">3<!-- --> left</span></div><div class="hint-box d-none" id="hint-t3"><div class="hint-box-title">💡 Hint</div><div class="hint-box-text" id="hintText-t3"></div></div><div class="mistakes-box d-none" id="mistakes-t3"><div class="mistakes-box-title">Common Mistakes</div><div class="mistakes-list"><div class="mistake-item">Using XPath that selects the whole element instead of text nodes.</div><div class="mistake-item">Omitting quotes around the XPath string.</div></div></div><div class="feedback-box incorrect d-none"><div class="feedback-title">✗ Incorrect</div><div class="feedback-text"><p>The XPath <code>//p/text()</code> selects the text nodes inside all paragraph tags, which IMPORTXML can import as text.</p></div></div></div></div><div class="puzzle-container " id="puzzle-fill_in_blank-3"><div class="task-card " id="try-t4" data-blank-count="2"><div class="task-header"><div class="task-badge"><span class="task-number">4</span><span class="task-type">fill in blank</span></div><span class="task-difficulty hard">hard</span></div><p class="task-instruction text-pre-wrap ">Fill both blanks to import all image URLs and all link URLs from a webpage.</p><div class="code-block"><div class="code-header"><span class="code-title">Google Sheets</span></div><pre class="code-content" id="code-t4">=IMPORTXML(<span class="hl-str">"https://example.com"</span>, <span class="hl-str">"</span><span class="code-blank" data-blank="1" data-task="t4">[1]</span> | <span class="code-blank" data-blank="2" data-task="t4">[2]</span><span class="hl-str">")</span></pre></div><div class="blank-selection-hint" id="hint-select-t4"><span class="d-flex align-items-center justify-content-center flex-wrap gap-1 line-height-normal"><span class="new-material-symbols icon-hw-22"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#EF4444"><path d="M480-240q-76.33 0-138.83-43.5-62.5-43.5-87.5-115.83-4-12 2-23.34 6-11.33 19-15.33 13-4.33 25.83 2.17 12.83 6.5 18.83 20.83 19.67 49 63.34 78.67 43.66 29.66 97.33 29.66 72 0 122.67-50.66Q653.33-408 653.33-480q0-53-29.83-96.83-29.83-43.84-78.83-63.5-14.67-6-20.67-18.84-6-12.83-1.67-25.83 4.34-13 15.5-19 11.17-6 23.17-2 71 25 115 87.17 44 62.16 44 138.83 0 100-70 170t-170 70Zm0 160q-161.33 0-277.33-110.67-116-110.66-123-271.33-.34-13.33 8.83-23t22.83-10.67q13.67-1 24.5 8.84 10.84 9.83 12.17 24.5 12.67 138 106.17 226.83 93.5 88.83 225.83 88.83 139.33 0 236.33-97t97-236.33q0-133.67-90-228.17T496.67-812q-14.67-1.33-23.84-11.67-9.16-10.33-8.83-24.66.33-13.67 10-22.67 9.67-9 23-8.67 80 3 149.83 36 69.84 33 121.5 87.17Q820-702.33 850-631.17 880-560 880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-97.33-420-132-131-33.34 101Q213-518 201-518.5q-12-.5-15.67-12.5L89.67-850q-2.67-9.33 4.5-16.5 7.16-7.17 16.5-4.5l319 95.67q12 3.66 12.5 15.66t-11.5 16.34l-101 33.33 132 132q17 17 17 39t-17 39q-17 17-39.5 17t-39.5-17Z"></path></svg></span> Drag options to blanks, or click blank then click option'</span></div><div class="fill-options" id="fillOptions-t4"><div class="fill-option " draggable="true" data-key="A" data-task="t4"><span class="option-key">A</span>//img/@src</div><div class="fill-option " draggable="true" data-key="B" data-task="t4"><span class="option-key">B</span>//a/@href</div><div class="fill-option " draggable="true" data-key="C" data-task="t4"><span class="option-key">C</span>//div</div><div class="fill-option " draggable="true" data-key="D" data-task="t4"><span class="option-key">D</span>//span</div></div><button class="verify-btn" id="verifyBtn-t4" disabled=""><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 13l4 4L19 7"></path></svg>Verify Answer</button><div class="attempts-counter" id="attempts-t4"><span>Attempts:</span><div class="attempts-dots"><span class="attempt-dot "></span><span class="attempt-dot "></span><span class="attempt-dot "></span></div><span id="attemptsLeft-t4">3<!-- --> left</span></div><div class="hint-box d-none" id="hint-t4"><div class="hint-box-title">💡 Hint</div><div class="hint-box-text" id="hintText-t4"></div></div><div class="mistakes-box d-none" id="mistakes-t4"><div class="mistakes-box-title">Common Mistakes</div><div class="mistakes-list"><div class="mistake-item">Using element selectors instead of attribute selectors.</div><div class="mistake-item">Not combining the two XPath expressions correctly.</div></div></div><div class="feedback-box incorrect d-none"><div class="feedback-title">✗ Incorrect</div><div class="feedback-text"><p>The XPath <code>//img/@src</code> selects all image URLs, and <code>//a/@href</code> selects all link URLs. Using the pipe <code>|</code> combines both selections.</p></div></div></div></div><div class="puzzle-container " id="puzzle-fill_in_blank-4"><div class="task-card " id="try-t5" data-blank-count="3"><div class="task-header"><div class="task-badge"><span class="task-number">5</span><span class="task-type">fill in blank</span></div><span class="task-difficulty hard">hard</span></div><p class="task-instruction text-pre-wrap ">Fill all three blanks to import all product names, prices, and availability from a webpage with structured HTML.</p><div class="code-block"><div class="code-header"><span class="code-title">Google Sheets</span></div><pre class="code-content" id="code-t5">=IMPORTXML(<span class="hl-str">"https://example.com/products"</span>, <span class="hl-str">"//div[@class='product']/</span><span class="code-blank" data-blank="1" data-task="t5">[1]</span> | //div[@<span class="hl-kw">class</span>=<span class="hl-str">'product'</span>]/<span class="code-blank" data-blank="2" data-task="t5">[2]</span> | //div[@<span class="hl-kw">class</span>=<span class="hl-str">'product'</span>]/<span class="code-blank" data-blank="3" data-task="t5">[3]</span><span class="hl-str">")</span></pre></div><div class="blank-selection-hint" id="hint-select-t5"><span class="d-flex align-items-center justify-content-center flex-wrap gap-1 line-height-normal"><span class="new-material-symbols icon-hw-22"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#EF4444"><path d="M480-240q-76.33 0-138.83-43.5-62.5-43.5-87.5-115.83-4-12 2-23.34 6-11.33 19-15.33 13-4.33 25.83 2.17 12.83 6.5 18.83 20.83 19.67 49 63.34 78.67 43.66 29.66 97.33 29.66 72 0 122.67-50.66Q653.33-408 653.33-480q0-53-29.83-96.83-29.83-43.84-78.83-63.5-14.67-6-20.67-18.84-6-12.83-1.67-25.83 4.34-13 15.5-19 11.17-6 23.17-2 71 25 115 87.17 44 62.16 44 138.83 0 100-70 170t-170 70Zm0 160q-161.33 0-277.33-110.67-116-110.66-123-271.33-.34-13.33 8.83-23t22.83-10.67q13.67-1 24.5 8.84 10.84 9.83 12.17 24.5 12.67 138 106.17 226.83 93.5 88.83 225.83 88.83 139.33 0 236.33-97t97-236.33q0-133.67-90-228.17T496.67-812q-14.67-1.33-23.84-11.67-9.16-10.33-8.83-24.66.33-13.67 10-22.67 9.67-9 23-8.67 80 3 149.83 36 69.84 33 121.5 87.17Q820-702.33 850-631.17 880-560 880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-97.33-420-132-131-33.34 101Q213-518 201-518.5q-12-.5-15.67-12.5L89.67-850q-2.67-9.33 4.5-16.5 7.16-7.17 16.5-4.5l319 95.67q12 3.66 12.5 15.66t-11.5 16.34l-101 33.33 132 132q17 17 17 39t-17 39q-17 17-39.5 17t-39.5-17Z"></path></svg></span> Drag options to blanks, or click blank then click option'</span></div><div class="fill-options" id="fillOptions-t5"><div class="fill-option " draggable="true" data-key="A" data-task="t5"><span class="option-key">A</span>span[@class='name']</div><div class="fill-option " draggable="true" data-key="B" data-task="t5"><span class="option-key">B</span>span[@class='price']</div><div class="fill-option " draggable="true" data-key="C" data-task="t5"><span class="option-key">C</span>span[@class='availability']</div><div class="fill-option " draggable="true" data-key="D" data-task="t5"><span class="option-key">D</span>div[@class='description']</div></div><button class="verify-btn" id="verifyBtn-t5" disabled=""><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M5 13l4 4L19 7"></path></svg>Verify Answer</button><div class="attempts-counter" id="attempts-t5"><span>Attempts:</span><div class="attempts-dots"><span class="attempt-dot "></span><span class="attempt-dot "></span><span class="attempt-dot "></span></div><span id="attemptsLeft-t5">3<!-- --> left</span></div><div class="hint-box d-none" id="hint-t5"><div class="hint-box-title">💡 Hint</div><div class="hint-box-text" id="hintText-t5"></div></div><div class="mistakes-box d-none" id="mistakes-t5"><div class="mistakes-box-title">Common Mistakes</div><div class="mistakes-list"><div class="mistake-item">Selecting wrong class names or elements.</div><div class="mistake-item">Not combining the XPath queries properly.</div></div></div><div class="feedback-box incorrect d-none"><div class="feedback-title">✗ Incorrect</div><div class="feedback-text"><p>Each XPath selects a specific span inside the product div: name, price, and availability. Combining them with <code>|</code> imports all three data types.</p></div></div></div></div></div></div></article></div><div><article class="content-card" id="practice"><div class="code-articles-card-header justify-content-between"><div class="d-flex align-items-center" style="gap:12px"><span class="card-icon nofill intro"><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round" class="blue-icon-color site-fs-20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M12 7a5 5 0 1 0 5 5"></path><path d="M13 3.055a9 9 0 1 0 7.941 7.945"></path><path d="M15 6v3h3l3 -3h-3v-3z"></path><path d="M15 9l-3 3"></path></svg></span><h2 class="codefly-card-title mb-0 pb-0">Practice</h2></div><span class="site-fs-15">(<!-- -->1<!-- -->/<!-- -->5<!-- -->)</span></div><div class="code-articles-card-body" data-theme="light"><div class=""><div class="mb-4"><div class="practice-content"><div class="text-pre-wrap dbd-txt-theme-intense pb-3">1<!-- -->. <!-- -->What does the <code>IMPORTXML</code> function do in Google Sheets?</div></div><div class="question-pills-container " style="padding-top:unset"><span class="level-badge">easy</span></div></div><div class=""><div class="practice-options"><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>A<!-- -->. <!-- -->It fetches data from a web page using a URL and XPath query.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>B<!-- -->. <!-- -->It imports data from another Google Sheet only.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>C<!-- -->. <!-- -->It creates charts based on web data automatically.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>D<!-- -->. <!-- -->It exports your sheet data to a web page.</span></div></div><div class="py-3"><button class="site-btn" style="width:200px" disabled="">Verify</button></div></div><div class="py-2 d-none"><div class="practice-helper-btns-wrapper"></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-solution-box"><h4 class="helper-solution-box-title">Solution</h4><div class="practice-helper-body"><ol><li><h4>Step 1: Understand IMPORTXML purpose</h4>IMPORTXML is designed to pull data from web pages by using a URL and an XPath query to specify what data to extract.</li><li><h4>Step 2: Compare options</h4>Only "It fetches data from a web page using a URL and XPath query." correctly describes this function. The other options describe unrelated features.</li><li><h4>Final Answer:</h4><strong>It fetches data from a web page using a URL and XPath query.</strong> -> Option A</li><li><h4>Quick Check:</h4>IMPORTXML = fetch web data [OK]</li></ol></div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-hint-box"><div class="practice-helper-body"><strong class="helper-hint-box-title">Hint: </strong>IMPORTXML grabs web data using URL + XPath [OK]</div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-mistakes-box"><div class="practice-helper-body"><strong class="helper-mistakes-box-title">Common Mistakes: </strong><ul class="ph-mistakes-list"><li class="ph-mistake-item mb-0">Thinking IMPORTXML only works with other sheets</li><li class="ph-mistake-item mb-0">Confusing IMPORTXML with chart creation</li><li class="ph-mistake-item mb-0">Assuming it exports data instead of importing</li></ul></div></div></div></div></div></div><div class="d-none"><div class="mb-4"><div class="practice-content"><div class="text-pre-wrap dbd-txt-theme-intense pb-3">2<!-- -->. <!-- -->Which of these is the correct syntax for using <code>IMPORTXML</code> to get all <code><h2></code> elements from a webpage URL in cell A1?</div></div><div class="question-pills-container " style="padding-top:unset"><span class="level-badge">easy</span></div></div><div class=""><div class="practice-options"><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>A<!-- -->. <code>=IMPORTXML(A1, "//h2/@text")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>B<!-- -->. <code>=IMPORTXML(A1, "//h2[]")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>C<!-- -->. <code>=IMPORTXML(A1, "h2")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>D<!-- -->. <code>=IMPORTXML(A1, "//h2")</code></span></div></div><div class="py-3"><button class="site-btn" style="width:200px" disabled="">Verify</button></div></div><div class="py-2 d-none"><div class="practice-helper-btns-wrapper"></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-solution-box"><h4 class="helper-solution-box-title">Solution</h4><div class="practice-helper-body"><ol><li><h4>Step 1: Recall IMPORTXML syntax</h4>The function takes two arguments: a URL and an XPath query. To select all <h2> elements, the XPath is "//h2".</li><li><h4>Step 2: Evaluate options</h4><code>=IMPORTXML(A1, "//h2")</code> uses correct XPath syntax. <code>=IMPORTXML(A1, "//h2[]")</code> has invalid brackets. <code>=IMPORTXML(A1, "h2")</code> misses the XPath axis. <code>=IMPORTXML(A1, "//h2/@text")</code> tries to get an attribute "text" which doesn't exist.</li><li><h4>Final Answer:</h4><strong>=IMPORTXML(A1, "//h2")</strong> -> Option D</li><li><h4>Quick Check:</h4>Correct XPath syntax = <code>=IMPORTXML(A1, "//h2")</code> [OK]</li></ol></div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-hint-box"><div class="practice-helper-body"><strong class="helper-hint-box-title">Hint: </strong>Use double slashes and tag name for XPath [OK]</div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-mistakes-box"><div class="practice-helper-body"><strong class="helper-mistakes-box-title">Common Mistakes: </strong><ul class="ph-mistakes-list"><li class="ph-mistake-item mb-0">Adding brackets [] incorrectly in XPath</li><li class="ph-mistake-item mb-0">Omitting // in XPath</li><li class="ph-mistake-item mb-0">Trying to get text as attribute with @text</li></ul></div></div></div></div></div></div><div class="d-none"><div class="mb-4"><div class="practice-content"><div class="text-pre-wrap dbd-txt-theme-intense pb-3">3<!-- -->. <!-- -->Given the formula <code>=IMPORTXML("https://example.com", "//ul/li")</code>, what will the output be?</div></div><div class="question-pills-container " style="padding-top:unset"><span class="level-badge">medium</span></div></div><div class=""><div class="practice-options"><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>A<!-- -->. <!-- -->All paragraphs (<p>) from the page.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>B<!-- -->. <!-- -->Only the first list item from the page.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>C<!-- -->. <!-- -->All list items (<li>) inside unordered lists (<ul>) from the page.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>D<!-- -->. <!-- -->An error because XPath is invalid.</span></div></div><div class="py-3"><button class="site-btn" style="width:200px" disabled="">Verify</button></div></div><div class="py-2 d-none"><div class="practice-helper-btns-wrapper"></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-solution-box"><h4 class="helper-solution-box-title">Solution</h4><div class="practice-helper-body"><ol><li><h4>Step 1: Understand the XPath query</h4>The XPath "//ul/li" selects all </li><li> elements that are children of any <ul> element on the page.</li><li><h4>Step 2: Predict IMPORTXML output</h4>IMPORTXML will return all matching list items, not just the first, and it won't return paragraphs or error since XPath is valid.</li><li><h4>Final Answer:</h4><strong>All list items (<li>) inside unordered lists (<ul>) from the page.</li></strong> -> Option C</li><li><h4>Quick Check:</h4>XPath selects all matching nodes = All list items (</li><li>) inside unordered lists (<ul>) from the page. [OK]</li></ol></div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-hint-box"><div class="practice-helper-body"><strong class="helper-hint-box-title">Hint: </strong>XPath //ul/li selects all list items under ul [OK]</div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-mistakes-box"><div class="practice-helper-body"><strong class="helper-mistakes-box-title">Common Mistakes: </strong><ul class="ph-mistakes-list"><li class="ph-mistake-item mb-0">Assuming only first match is returned</li><li class="ph-mistake-item mb-0">Confusing <li> with <p> tags</li><li class="ph-mistake-item mb-0">Thinking XPath syntax is wrong here</li></ul></div></div></div></div></div></div><div class="d-none"><div class="mb-4"><div class="practice-content"><div class="text-pre-wrap dbd-txt-theme-intense pb-3">4<!-- -->. <!-- -->You wrote <code>=IMPORTXML("https://example.com", "//div[@class='price']")</code> but get a #N/A error. What is the likely problem?</div></div><div class="question-pills-container " style="padding-top:unset"><span class="level-badge">medium</span></div></div><div class=""><div class="practice-options"><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>A<!-- -->. <!-- -->The URL is invalid or unreachable.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>B<!-- -->. <!-- -->The XPath syntax for class attribute is incorrect.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>C<!-- -->. <!-- -->IMPORTXML does not support attribute filters.</span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>D<!-- -->. <!-- -->You must use single quotes inside the XPath instead of double quotes.</span></div></div><div class="py-3"><button class="site-btn" style="width:200px" disabled="">Verify</button></div></div><div class="py-2 d-none"><div class="practice-helper-btns-wrapper"></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-solution-box"><h4 class="helper-solution-box-title">Solution</h4><div class="practice-helper-body"><ol><li><h4>Step 1: Check XPath syntax</h4>The XPath "//div[@class='price']" is correct for selecting divs with class 'price'.</li><li><h4>Step 2: Consider other causes of #N/A</h4>#N/A often means the URL is unreachable or blocked. IMPORTXML supports attribute filters and double quotes inside XPath strings are allowed if escaped properly.</li><li><h4>Final Answer:</h4><strong>The URL is invalid or unreachable.</strong> -> Option A</li><li><h4>Quick Check:</h4>#N/A often means URL problem [OK]</li></ol></div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-hint-box"><div class="practice-helper-body"><strong class="helper-hint-box-title">Hint: </strong>Check URL accessibility if #N/A error occurs [OK]</div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-mistakes-box"><div class="practice-helper-body"><strong class="helper-mistakes-box-title">Common Mistakes: </strong><ul class="ph-mistakes-list"><li class="ph-mistake-item mb-0">Assuming XPath syntax is wrong when it's correct</li><li class="ph-mistake-item mb-0">Not verifying the URL is accessible</li><li class="ph-mistake-item mb-0">Thinking IMPORTXML can't filter by attributes</li></ul></div></div></div></div></div></div><div class="d-none"><div class="mb-4"><div class="practice-content"><div class="text-pre-wrap dbd-txt-theme-intense pb-3">5<!-- -->. <!-- -->You want to import the latest news headlines from <code>https://news.example.com</code> where headlines are in <code><h3 class='headline'></code> tags. Which formula correctly imports only the text of these headlines?</div></div><div class="question-pills-container " style="padding-top:unset"><span class="level-badge">hard</span></div></div><div class=""><div class="practice-options"><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>A<!-- -->. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>B<!-- -->. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/text()")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>C<!-- -->. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/@text")</code></span></div><div class="practice-option-label" style="cursor:pointer"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" class="txt-dark-grey-color site-fs-18 me-2 me-md-3" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path fill="none" d="M0 0h24v24H0z"></path><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"></path></svg><span>D<!-- -->. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/innerText")</code></span></div></div><div class="py-3"><button class="site-btn" style="width:200px" disabled="">Verify</button></div></div><div class="py-2 d-none"><div class="practice-helper-btns-wrapper"></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-solution-box"><h4 class="helper-solution-box-title">Solution</h4><div class="practice-helper-body"><ol><li><h4>Step 1: Understand XPath to get text content</h4>To get only the text inside elements, use the XPath function <code>/text()</code> after selecting the element.</li><li><h4>Step 2: Evaluate options</h4><code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/text()")</code> correctly uses <code>/text()</code>. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']")</code> returns the whole element including tags. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/@text")</code> tries to get an attribute 'text' which doesn't exist. <code>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/innerText")</code> uses invalid XPath syntax.</li><li><h4>Final Answer:</h4><strong>=IMPORTXML("https://news.example.com", "//h3[@class='headline']/text()")</strong> -> Option B</li><li><h4>Quick Check:</h4>Use /text() to get element text [OK]</li></ol></div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-hint-box"><div class="practice-helper-body"><strong class="helper-hint-box-title">Hint: </strong>Add /text() to XPath to get only text content [OK]</div></div></div></div><div class="practice-expanation-div "><div class="practice-expanation-div-body"><div class="practice-helper-content helper-mistakes-box"><div class="practice-helper-body"><strong class="helper-mistakes-box-title">Common Mistakes: </strong><ul class="ph-mistakes-list"><li class="ph-mistake-item mb-0">Omitting /text() and getting full HTML tags</li><li class="ph-mistake-item mb-0">Using @text which is not an attribute</li><li class="ph-mistake-item mb-0">Trying invalid XPath like innerText</li></ul></div></div></div></div></div></div><div class="d-flex align-items-center justify-content-between mt-4"><button class="secondary-site-btn" disabled=""><svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"></path></svg> Previous</button><div class="practice-question-toggles-wrapper"><button class="practice-question-toggle-btn active ">1</button><button class="practice-question-toggle-btn ">2</button><button class="practice-question-toggle-btn ">3</button><button class="practice-question-toggle-btn ">4</button><button class="practice-question-toggle-btn ">5</button></div><button class="secondary-site-btn">Next <svg stroke="currentColor" fill="none" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"></path></svg></button></div></div></article></div></div></main><div style="position:fixed;bottom:24px;right:24px;z-index:50"><button style="background:rgba(255,255,255,0.95);border:1px solid rgba(108,99,255,0.18);border-radius:10px;padding:10px 16px;color:#5f56fe;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:7px;backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(0,0,0,0.08), 0 0 0 1px rgba(108,99,255,0.06);transition:all 0.2s"><span style="font-size:14px">⚑</span>Report Issue</button></div></div> <script src="/_next/static/chunks/webpack-11294659b0614ceb.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/76927b9fb3230d70.css\",\"style\"]\n2:HL[\"/_next/static/css/09df87ea90d434dc.css\",\"style\"]\n3:HL[\"/_next/static/css/7d6a9246d91a96b7.css\",\"style\"]\n4:HL[\"/_next/static/css/7c2eba75e474b2d8.css\",\"style\"]\n5:HL[\"/_next/static/css/f1c47dae35e4203b.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"6:I[95751,[],\"\"]\n9:I[39275,[],\"\"]\nf:I[61343,[],\"\"]\n10:I[84080,[\"8726\",\"static/chunks/8726-583188341cbc1496.js\",\"3185\",\"static/chunks/app/layout-31cba1e02b5988c5.js\"],\"\"]\n11:I[88726,[\"8726\",\"static/chunks/8726-583188341cbc1496.js\",\"3185\",\"static/chunks/app/layout-31cba1e02b5988c5.js\"],\"Toaster\"]\n12:I[20154,[\"8422\",\"static/chunks/66ec4792-ad6841ff2b867b21.js\",\"4595\",\"static/chunks/4595-37d62d4bf1c658c4.js\",\"9160\",\"static/chunks/app/not-found-dc168faec32e8d0a.js\"],\"default\"]\n13:I[70548,[\"8726\",\"static/chunks/8726-583188341cbc1496.js\",\"3185\",\"static/chunks/app/layout-31cba1e02b5988c5.js\"],\"default\"]\n14:I[29600,[\"8726\",\"static/chunks/8726-583188341cbc1496.js\",\"3185\",\"static/chunks/app/layout-31cba1e02b5988c5.js\"],\"default\"]\n16:I[76130,[],\"\"]\na:[\"lang\",\"en\",\"d\"]\nb:[\"subject\",\"google-sheets\",\"d\"]\nc:[\"part\",\"part-3\",\"d\"]\nd:[\"pattern\",\"google-sheets-importxml-for-structured-data\",\"d\"]\ne:[\"mode\",\"try\",\"oc\"]\n17:[]\n"])</script><script>self.__next_f.push([1,"0:[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/76927b9fb3230d70.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"$L6\",null,{\"buildId\":\"leyaa-prod-build-id\",\"assetPrefix\":\"\",\"initialCanonicalUrl\":\"/en/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\",\"initialTree\":[\"\",{\"children\":[[\"lang\",\"en\",\"d\"],{\"children\":[\"codefly\",{\"children\":[\"learn\",{\"children\":[[\"subject\",\"google-sheets\",\"d\"],{\"children\":[[\"part\",\"part-3\",\"d\"],{\"children\":[[\"pattern\",\"google-sheets-importxml-for-structured-data\",\"d\"],{\"children\":[[\"mode\",\"try\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[[\"lang\",\"en\",\"d\"],{\"children\":[\"codefly\",{\"children\":[\"learn\",{\"children\":[[\"subject\",\"google-sheets\",\"d\"],{\"children\":[[\"part\",\"part-3\",\"d\"],{\"children\":[[\"pattern\",\"google-sheets-importxml-for-structured-data\",\"d\"],{\"children\":[[\"mode\",\"try\",\"oc\"],{\"children\":[\"__PAGE__\",{},[[\"$L7\",\"$L8\"],null],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\",\"learn\",\"children\",\"$b\",\"children\",\"$c\",\"children\",\"$d\",\"children\",\"$e\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/09df87ea90d434dc.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7d6a9246d91a96b7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7c2eba75e474b2d8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f1c47dae35e4203b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\",\"learn\",\"children\",\"$b\",\"children\",\"$c\",\"children\",\"$d\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\",\"learn\",\"children\",\"$b\",\"children\",\"$c\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\",\"learn\",\"children\",\"$b\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\",\"learn\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\",\"codefly\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"$a\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\",\"styles\":null}],null]},[[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#5f56fe\"}],[\"$\",\"meta\",null,{\"name\":\"msapplication-TileColor\",\"content\":\"#5f56fe\"}],[\"$\",\"$L10\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-N2NY2DMMDW\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$L10\",null,{\"id\":\"google-analytics\",\"strategy\":\"afterInteractive\",\"children\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-N2NY2DMMDW', {\\n page_path: window.location.pathname,\\n });\\n \"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=AW-18214378714\"}],[\"$\",\"$L10\",null,{\"children\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag() {\\n dataLayer.push(arguments);\\n }\\n gtag('js', new Date());\\n gtag('config', 'AW-18214378714');\\n \"}],[\"$\",\"script\",null,{\"data-grow-initializer\":\"\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"!(function(){window.growMe||((window.growMe=function(e){window.growMe._.push(e);}),(window.growMe._=[]));var e=document.createElement(\\\"script\\\");(e.type=\\\"text/javascript\\\"),(e.src=\\\"https://faves.grow.me/main.js\\\"),(e.defer=!0),e.setAttribute(\\\"data-grow-faves-site-id\\\",\\\"U2l0ZTo0MGIxZDBlZC0wNzdlLTQ0NjgtOThmOC1kNDYyZGMwM2IwMWY=\\\");var t=document.getElementsByTagName(\\\"script\\\")[0];t.parentNode.insertBefore(e,t);})();\"}}],[\"$\",\"$L10\",null,{\"src\":\"//scripts.scriptwrapper.com/tags/40b1d0ed-077e-4468-98f8-d462dc03b01f.js\",\"strategy\":\"afterInteractive\",\"data-noptimize\":\"1\",\"data-cfasync\":\"false\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebApplication\\\",\\\"name\\\":\\\"Leyaa.ai\\\",\\\"description\\\":\\\"Leyaa.ai builds learning intelligence that understands how you learn - guiding what to study, how to practice, and when to move forward.\\\",\\\"url\\\":\\\"https://leyaa.ai\\\",\\\"applicationCategory\\\":\\\"EducationalApplication\\\",\\\"operatingSystem\\\":\\\"Web\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"creator\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Leyaa.ai\\\"}}\"}}],[\"$\",\"link\",null,{\"href\":\"https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css\",\"rel\":\"stylesheet\",\"integrity\":\"sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"$L10\",null,{\"id\":\"clarity-script\",\"strategy\":\"afterInteractive\",\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function(c,l,a,r,i,t,y){\\n c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};\\n t=l.createElement(r);t.async=1;t.src=\\\"https://www.clarity.ms/tag/\\\"+i;\\n y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);\\n })(window, document, \\\"clarity\\\", \\\"script\\\", \\\"w4gxh6rdmh\\\");\\n \"}}]]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L11\",null,{\"containerStyle\":{\"top\":70}}],[\"$\",\"div\",null,{\"className\":\"bg-grid\"}],[\"$\",\"$L9\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lf\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$\",\"$L12\",null,{}],\"notFoundStyles\":[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f1c47dae35e4203b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],\"styles\":null}],[\"$\",\"$L13\",null,{}],\" \",[\"$\",\"$L14\",null,{}]]}]]}],null],null],\"couldBeIntercepted\":false,\"initialHead\":[false,\"$L15\"],\"globalErrorComponent\":\"$16\",\"missingSlots\":\"$W17\"}]]\n"])</script><script>self.__next_f.push([1,"15:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice | Leyaa.ai\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Practice IMPORTXML for structured data in Google Sheets with interactive drag-and-drop exercises. Complete code by filling in the blanks. Instant feedback, hints \u0026 explanations. Free.\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Leyaa.ai\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"6\",{\"name\":\"keywords\",\"content\":\"learning intelligence,AI learning,personalized learning,adaptive learning,study guide,exam preparation,learning platform,education technology,edtech,smart learning\"}],[\"$\",\"meta\",\"7\",{\"name\":\"creator\",\"content\":\"Leyaa.ai\"}],[\"$\",\"meta\",\"8\",{\"name\":\"publisher\",\"content\":\"Leyaa.ai\"}],[\"$\",\"meta\",\"9\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"10\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"11\",{\"name\":\"content-language\",\"content\":\"en\"}],[\"$\",\"link\",\"12\",{\"rel\":\"canonical\",\"href\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\"}],[\"$\",\"link\",\"13\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\"}],[\"$\",\"link\",\"14\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:title\",\"content\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice | Leyaa.ai\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:description\",\"content\":\"Practice IMPORTXML for structured data in Google Sheets with interactive drag-and-drop exercises. Complete code by filling in the blanks. Instant feedback, hints \u0026 explanations. Free.\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:url\",\"content\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:image\",\"content\":\"https://leyaa.ai/Assets/metaImages/leyaa-preview-image.png\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"22\",{\"property\":\"og:image:alt\",\"content\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice\"}],[\"$\",\"meta\",\"23\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:site\",\"content\":\"@leyaaai\"}],[\"$\",\"meta\",\"26\",{\"name\":\"twitter:creator\",\"content\":\"@leyaaai\"}],[\"$\",\"meta\",\"27\",{\"name\":\"twitter:title\",\"content\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice | Leyaa.ai\"}],[\"$\",\"meta\",\"28\",{\"name\":\"twitter:description\",\"content\":\"Practice IMPORTXML for structured data in Google Sheets with interactive drag-and-drop exercises. Complete code by filling in the blanks. Instant feedback, hints \u0026 explanations. Free.\"}],[\"$\",\"meta\",\"29\",{\"name\":\"twitter:image\",\"content\":\"https://leyaa.ai/Assets/metaImages/leyaa-preview-image.png\"}],[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/leyaa-logo.png\"}],[\"$\",\"link\",\"31\",{\"rel\":\"apple-touch-icon\",\"href\":\"/leyaa-logo.png\"}],[\"$\",\"meta\",\"32\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"7:null\n"])</script><script>self.__next_f.push([1,"19:I[51766,[\"6051\",\"static/chunks/795d4814-8b40e2eae05948ca.js\",\"8422\",\"static/chunks/66ec4792-ad6841ff2b867b21.js\",\"522\",\"static/chunks/94730671-fd9628eddbd5107b.js\",\"7699\",\"static/chunks/8e1d74a4-a085c2fbc868135a.js\",\"5706\",\"static/chunks/9c4e2130-11ecd4bfc78e4568.js\",\"6950\",\"static/chunks/f8025e75-53f3750188786842.js\",\"7240\",\"static/chunks/53c13509-a3e4ac0640ae03f2.js\",\"2516\",\"static/chunks/f7333993-31ab72eb9b202e3d.js\",\"1779\",\"static/chunks/0e762574-cee3ec2351d97ca0.js\",\"4595\",\"static/chunks/4595-37d62d4bf1c658c4.js\",\"5214\",\"static/chunks/5214-e3bab3760d8a76d5.js\",\"4889\",\"static/chunks/4889-956a916919971629.js\",\"8726\",\"static/chunks/8726-583188341cbc1496.js\",\"857\",\"static/chunks/857-87fa0b14dfeb526c.js\",\"7562\",\"static/chunks/7562-7af73e520531cb40.js\",\"4481\",\"static/chunks/4481-43d13bd8fc7ab4dc.js\",\"1269\",\"static/chunks/1269-10aeb9901b732cc0.js\",\"6857\",\"static/chunks/6857-f9121be732678b30.js\",\"2209\",\"static/chunks/2209-00dd8d5e62bcce88.js\",\"2599\",\"static/chunks/2599-d7338c0251a4911a.js\",\"7029\",\"static/chunks/app/%5Blang%5D/codefly/learn/%5Bsubject%5D/%5Bpart%5D/%5Bpattern%5D/%5B%5B...mode%5D%5D/page-ea9cba1931232379.js\"],\"default\"]\n18:T504,{\"@context\":\"https://schema.org\",\"@type\":\"LearningResource\",\"name\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice\",\"description\":\"Practice IMPORTXML for structured data in Google Sheets with interactive drag-and-drop exercises. Complete code by filling in the blanks. Instant feedback, hints \u0026 explanations. Free.\",\"url\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\",\"learningResourceType\":\"Practice Exercise\",\"programmingLanguage\":\"Google Sheets\",\"inLanguage\":\"en\",\"isAccessibleForFree\":true,\"teaches\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice\",\"provider\":{\"@type\":\"Organization\",\"url\":\"https://leyaa.ai\"},\"educationalLevel\":\"Beginner to Advanced\",\"breadcrumb\":{\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:"])</script><script>self.__next_f.push([1,"//leyaa.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice\",\"item\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Try It\",\"item\":\"https://leyaa.ai/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\"}]}}"])</script><script>self.__next_f.push([1,"8:[[[\"$\",\"script\",\"0\",{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$18\"}}]],[\"$\",\"$L19\",null,{\"subject\":\"google-sheets\",\"dbSubject\":\"google_sheets\",\"part\":\"part-3\",\"pattern\":\"google_sheets_importxml_for_structured_data\",\"modeSlug\":\"try\",\"lang\":\"en\",\"internalLinks\":[{\"code\":\"LMC\",\"slug\":\"\",\"label\":\"📖 Learn\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data\",\"active\":false},{\"code\":\"LMCWHY\",\"slug\":\"why\",\"label\":\"💡 Why Learn This\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/why\",\"active\":false},{\"code\":\"DLM\",\"slug\":\"deep\",\"label\":\"💡 Deep Learn Mode\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/deep\",\"active\":false},{\"code\":\"TMC\",\"slug\":\"try\",\"label\":\"✏️ Try It\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/try\",\"active\":true},{\"code\":\"VMC\",\"slug\":\"visualize\",\"label\":\"👁 Visualize\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/visualize\",\"active\":false},{\"code\":\"TCM\",\"slug\":\"complexity\",\"label\":\"⏱ Complexity\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/complexity\",\"active\":false},{\"code\":\"CMC\",\"slug\":\"challenge\",\"label\":\"🏆 Challenge\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/challenge\",\"active\":false},{\"code\":\"PMC\",\"slug\":\"project\",\"label\":\"📁 Project\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/project\",\"active\":false},{\"code\":\"RMC\",\"slug\":\"review\",\"label\":\"🧠 Quick Review\",\"href\":\"/codefly/learn/google-sheets/part-3/google-sheets-importxml-for-structured-data/review\",\"active\":false}],\"isLoggedIn\":false,\"seoH1\":\"IMPORTXML for structured data in Google Sheets - Interactive Code Practice\",\"contentData\":{\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"metadata\":{\"slot_map\":{\"LMCWHY\":\"LMCWHY\",\"TMC\":\"TMC\",\"CMC\":\"CMC\",\"RMC\":\"RMC\",\"VMC\":\"SHT\",\"TCM\":\"DAS\",\"PMC\":\"SCN\",\"DLM\":\"DLM\",\"TLM\":\"TLM\"}},\"modes\":{\"TMC\":{\"topic\":\"IMPORTXML for structured data\",\"mode\":\"TMC_v5\",\"language\":\"google_sheets\",\"content_type\":\"Spreadsheet \u0026 Formulas\",\"tasks\":[{\"id\":\"t1\",\"type\":\"fill_in_blank\",\"difficulty\":\"easy\",\"instruction\":\"Complete the formula to import all the links from a webpage using IMPORTXML.\",\"code\":\"=IMPORTXML(\\\"https://example.com\\\", \\\"{{BLANK_1}}\\\")\",\"options\":{\"A\":\"\\\"//img/@src\\\"\",\"B\":\"\\\"//a/@href\\\"\",\"C\":\"\\\"//p\\\"\",\"D\":\"\\\"//div\\\"\"},\"correct_answer\":[\"B\"],\"answer_explanation\":\"\u003cp\u003eThe XPath \u003ccode\u003e//a/@href\u003c/code\u003e selects all link URLs from anchor tags on the page.\u003c/p\u003e\",\"hints\":[{\"level\":1,\"hint\":\"Look for the XPath that selects link URLs.\"},{\"level\":2,\"hint\":\"Anchor tags are \u003ccode\u003ea\u003c/code\u003e and their URLs are in the \u003ccode\u003ehref\u003c/code\u003e attribute.\"}],\"common_mistakes\":[\"Using XPath that selects elements but not their attributes.\",\"Confusing image sources with links.\"],\"max_attempts\":3,\"time_limit_seconds\":120},{\"id\":\"t2\",\"type\":\"fill_in_blank\",\"difficulty\":\"medium\",\"instruction\":\"Complete the formula to import all the titles inside \u003ctitle\u003e tags from a webpage.\",\"code\":\"=IMPORTXML(\\\"https://example.com\\\", \\\"{{BLANK_1}}\\\")\",\"options\":{\"A\":\"\\\"//div/title\\\"\",\"B\":\"\\\"//body/title\\\"\",\"C\":\"\\\"//head/title\\\"\",\"D\":\"\\\"//title\\\"\"},\"correct_answer\":[\"D\"],\"answer_explanation\":\"\u003cp\u003eThe XPath \u003ccode\u003e//title\u003c/code\u003e selects all \u003ctitle\u003e tags anywhere in the document.\u003c/p\u003e\",\"hints\":[{\"level\":1,\"hint\":\"The \u003ccode\u003etitle\u003c/code\u003e tag is usually inside the \u003ccode\u003ehead\u003c/code\u003e section.\"},{\"level\":2,\"hint\":\"Using \u003ccode\u003e//title\u003c/code\u003e selects all title tags regardless of location.\"}],\"common_mistakes\":[\"Using XPath that assumes \u003ctitle\u003e is inside \u003cbody\u003e or \u003cdiv\u003e.\",\"Including extra path steps that are unnecessary.\"],\"max_attempts\":3,\"time_limit_seconds\":120},{\"id\":\"t3\",\"type\":\"fill_in_blank\",\"difficulty\":\"hard\",\"instruction\":\"Fix the error in the formula to import all paragraph texts from a webpage.\",\"code\":\"=IMPORTXML(\\\"https://example.com\\\", {{BLANK_1}})\",\"options\":{\"A\":\"\\\"//p/text()\\\"\",\"B\":\"\\\"//p\\\"\",\"C\":\"\\\"//text()\\\"\",\"D\":\"\\\"p/text()\\\"\"},\"correct_answer\":[\"A\"],\"answer_explanation\":\"\u003cp\u003eThe XPath \u003ccode\u003e//p/text()\u003c/code\u003e selects the text nodes inside all paragraph tags, which IMPORTXML can import as text.\u003c/p\u003e\",\"hints\":[{\"level\":1,\"hint\":\"You need to select the text inside the paragraph tags.\"},{\"level\":2,\"hint\":\"Using \u003ccode\u003e/text()\u003c/code\u003e after the tag selects the text content.\"}],\"common_mistakes\":[\"Using XPath that selects the whole element instead of text nodes.\",\"Omitting quotes around the XPath string.\"],\"max_attempts\":3,\"time_limit_seconds\":120},{\"id\":\"t4\",\"type\":\"fill_in_blank\",\"difficulty\":\"hard\",\"instruction\":\"Fill both blanks to import all image URLs and all link URLs from a webpage.\",\"code\":\"=IMPORTXML(\\\"https://example.com\\\", \\\"{{BLANK_1}} | {{BLANK_2}}\\\")\",\"options\":{\"A\":\"//img/@src\",\"B\":\"//a/@href\",\"C\":\"//div\",\"D\":\"//span\"},\"correct_answer\":[\"A\",\"B\"],\"answer_explanation\":\"\u003cp\u003eThe XPath \u003ccode\u003e//img/@src\u003c/code\u003e selects all image URLs, and \u003ccode\u003e//a/@href\u003c/code\u003e selects all link URLs. Using the pipe \u003ccode\u003e|\u003c/code\u003e combines both selections.\u003c/p\u003e\",\"hints\":[{\"level\":1,\"hint\":\"One XPath should select image sources, the other link URLs.\"},{\"level\":2,\"hint\":\"Use the pipe symbol \u003ccode\u003e|\u003c/code\u003e to combine two XPath queries.\"}],\"common_mistakes\":[\"Using element selectors instead of attribute selectors.\",\"Not combining the two XPath expressions correctly.\"],\"max_attempts\":3,\"time_limit_seconds\":180},{\"id\":\"t5\",\"type\":\"fill_in_blank\",\"difficulty\":\"hard\",\"instruction\":\"Fill all three blanks to import all product names, prices, and availability from a webpage with structured HTML.\",\"code\":\"=IMPORTXML(\\\"https://example.com/products\\\", \\\"//div[@class='product']/{{BLANK_1}} | //div[@class='product']/{{BLANK_2}} | //div[@class='product']/{{BLANK_3}}\\\")\",\"options\":{\"A\":\"span[@class='name']\",\"B\":\"span[@class='price']\",\"C\":\"span[@class='availability']\",\"D\":\"div[@class='description']\"},\"correct_answer\":[\"A\",\"B\",\"C\"],\"answer_explanation\":\"\u003cp\u003eEach XPath selects a specific span inside the product div: name, price, and availability. Combining them with \u003ccode\u003e|\u003c/code\u003e imports all three data types.\u003c/p\u003e\",\"hints\":[{\"level\":1,\"hint\":\"Look for spans with class names matching the data you want.\"},{\"level\":2,\"hint\":\"Use the pipe \u003ccode\u003e|\u003c/code\u003e to combine multiple XPath queries.\"}],\"common_mistakes\":[\"Selecting wrong class names or elements.\",\"Not combining the XPath queries properly.\"],\"max_attempts\":3,\"time_limit_seconds\":180}],\"learning_checkpoint\":{\"after_task\":3,\"micro_summary\":\"You learned how to write XPath queries for IMPORTXML to extract links, titles, and text from webpages.\"},\"metadata\":{\"version\":\"5.0\",\"content_type\":\"spreadsheet\",\"total_tasks\":5,\"estimated_time_minutes\":10}}},\"subject\":\"google_sheets\",\"title\":\"IMPORTXML for structured data\",\"puzzleDetails\":[{\"_id\":\"69b1786345baa2b58547f1cb\",\"question_number\":1,\"question\":\"What does the \u003ccode\u003eIMPORTXML\u003c/code\u003e function do in Google Sheets?\",\"options\":{\"A\":\"It fetches data from a web page using a URL and XPath query.\",\"B\":\"It imports data from another Google Sheet only.\",\"C\":\"It creates charts based on web data automatically.\",\"D\":\"It exports your sheet data to a web page.\"},\"correct_answer\":[\"A\"],\"solution_explanation\":\"\u003cdiv class='solution-box'\u003e\u003cspan class='solution-label'\u003e\u003cstrong\u003eSolution:\u003c/strong\u003e\u003c/span\u003e\u003col\u003e\u003cli\u003e\u003ch4\u003eStep 1: Understand IMPORTXML purpose\u003c/h4\u003eIMPORTXML is designed to pull data from web pages by using a URL and an XPath query to specify what data to extract.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eStep 2: Compare options\u003c/h4\u003eOnly \\\"It fetches data from a web page using a URL and XPath query.\\\" correctly describes this function. The other options describe unrelated features.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eFinal Answer:\u003c/h4\u003e\u003cstrong\u003eIt fetches data from a web page using a URL and XPath query.\u003c/strong\u003e -\u003e Option A\u003c/li\u003e\u003cli\u003e\u003ch4\u003eQuick Check:\u003c/h4\u003eIMPORTXML = fetch web data [OK]\u003c/li\u003e\u003c/ol\u003e\u003c/div\u003e\",\"quick_trick\":\"IMPORTXML grabs web data using URL + XPath [OK]\",\"common_mistakes\":[\"Thinking IMPORTXML only works with other sheets\",\"Confusing IMPORTXML with chart creation\",\"Assuming it exports data instead of importing\"],\"subject\":\"google_sheets\",\"pattern\":\"IMPORTXML for structured data\",\"category\":\"Spreadsheet \u0026 Formulas\",\"question_format\":\"MCQ\",\"question_mode\":\"conceptual\",\"difficulty\":\"easy\",\"topic\":\"Data Import and Connection\",\"type\":\"Spreadsheet \u0026 Formulas\",\"question_type\":\"conceptual\",\"level\":\"easy\",\"test_type\":\"puzzle\",\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"subjectTitle\":\"Google Sheets\",\"part\":\"part-3\",\"set_no\":1,\"usage_count\":0},{\"_id\":\"69b1786345baa2b58547f1cc\",\"question_number\":2,\"question\":\"Which of these is the correct syntax for using \u003ccode\u003eIMPORTXML\u003c/code\u003e to get all \u003ccode\u003e\u0026lt;h2\u0026gt;\u003c/code\u003e elements from a webpage URL in cell A1?\",\"options\":{\"A\":\"\u003ccode\u003e=IMPORTXML(A1, \\\"//h2/@text\\\")\u003c/code\u003e\",\"B\":\"\u003ccode\u003e=IMPORTXML(A1, \\\"//h2[]\\\")\u003c/code\u003e\",\"C\":\"\u003ccode\u003e=IMPORTXML(A1, \\\"h2\\\")\u003c/code\u003e\",\"D\":\"\u003ccode\u003e=IMPORTXML(A1, \\\"//h2\\\")\u003c/code\u003e\"},\"correct_answer\":[\"D\"],\"solution_explanation\":\"\u003cdiv class='solution-box'\u003e\u003cspan class='solution-label'\u003e\u003cstrong\u003eSolution:\u003c/strong\u003e\u003c/span\u003e\u003col\u003e\u003cli\u003e\u003ch4\u003eStep 1: Recall IMPORTXML syntax\u003c/h4\u003eThe function takes two arguments: a URL and an XPath query. To select all \u003ch2\u003e elements, the XPath is \\\"//h2\\\".\u003c/li\u003e\u003cli\u003e\u003ch4\u003eStep 2: Evaluate options\u003c/h4\u003e\u003ccode\u003e=IMPORTXML(A1, \\\"//h2\\\")\u003c/code\u003e uses correct XPath syntax. \u003ccode\u003e=IMPORTXML(A1, \\\"//h2[]\\\")\u003c/code\u003e has invalid brackets. \u003ccode\u003e=IMPORTXML(A1, \\\"h2\\\")\u003c/code\u003e misses the XPath axis. \u003ccode\u003e=IMPORTXML(A1, \\\"//h2/@text\\\")\u003c/code\u003e tries to get an attribute \\\"text\\\" which doesn't exist.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eFinal Answer:\u003c/h4\u003e\u003cstrong\u003e=IMPORTXML(A1, \\\"//h2\\\")\u003c/strong\u003e -\u003e Option D\u003c/li\u003e\u003cli\u003e\u003ch4\u003eQuick Check:\u003c/h4\u003eCorrect XPath syntax = \u003ccode\u003e=IMPORTXML(A1, \\\"//h2\\\")\u003c/code\u003e [OK]\u003c/li\u003e\u003c/ol\u003e\u003c/div\u003e\",\"quick_trick\":\"Use double slashes and tag name for XPath [OK]\",\"common_mistakes\":[\"Adding brackets [] incorrectly in XPath\",\"Omitting // in XPath\",\"Trying to get text as attribute with @text\"],\"subject\":\"google_sheets\",\"pattern\":\"IMPORTXML for structured data\",\"category\":\"Spreadsheet \u0026 Formulas\",\"question_format\":\"MCQ\",\"question_mode\":\"formula_fix\",\"difficulty\":\"easy\",\"topic\":\"Data Import and Connection\",\"type\":\"Spreadsheet \u0026 Formulas\",\"question_type\":\"formula_fix\",\"level\":\"easy\",\"test_type\":\"puzzle\",\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"subjectTitle\":\"Google Sheets\",\"part\":\"part-3\",\"set_no\":1,\"usage_count\":0},{\"_id\":\"69b1786345baa2b58547f1cd\",\"question_number\":3,\"question\":\"Given the formula \u003ccode\u003e=IMPORTXML(\\\"https://example.com\\\", \\\"//ul/li\\\")\u003c/code\u003e, what will the output be?\",\"options\":{\"A\":\"All paragraphs (\u003cp\u003e) from the page.\",\"B\":\"Only the first list item from the page.\",\"C\":\"All list items (\u003cli\u003e) inside unordered lists (\u003cul\u003e) from the page.\",\"D\":\"An error because XPath is invalid.\"},\"correct_answer\":[\"C\"],\"solution_explanation\":\"\u003cdiv class='solution-box'\u003e\u003cspan class='solution-label'\u003e\u003cstrong\u003eSolution:\u003c/strong\u003e\u003c/span\u003e\u003col\u003e\u003cli\u003e\u003ch4\u003eStep 1: Understand the XPath query\u003c/h4\u003eThe XPath \\\"//ul/li\\\" selects all \u003cli\u003e elements that are children of any \u003cul\u003e element on the page.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eStep 2: Predict IMPORTXML output\u003c/h4\u003eIMPORTXML will return all matching list items, not just the first, and it won't return paragraphs or error since XPath is valid.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eFinal Answer:\u003c/h4\u003e\u003cstrong\u003eAll list items (\u003cli\u003e) inside unordered lists (\u003cul\u003e) from the page.\u003c/strong\u003e -\u003e Option C\u003c/li\u003e\u003cli\u003e\u003ch4\u003eQuick Check:\u003c/h4\u003eXPath selects all matching nodes = All list items (\u003cli\u003e) inside unordered lists (\u003cul\u003e) from the page. [OK]\u003c/li\u003e\u003c/ol\u003e\u003c/div\u003e\",\"quick_trick\":\"XPath //ul/li selects all list items under ul [OK]\",\"common_mistakes\":[\"Assuming only first match is returned\",\"Confusing \u003cli\u003e with \u003cp\u003e tags\",\"Thinking XPath syntax is wrong here\"],\"subject\":\"google_sheets\",\"pattern\":\"IMPORTXML for structured data\",\"category\":\"Spreadsheet \u0026 Formulas\",\"question_format\":\"MCQ\",\"question_mode\":\"formula_result\",\"difficulty\":\"medium\",\"topic\":\"Data Import and Connection\",\"type\":\"Spreadsheet \u0026 Formulas\",\"question_type\":\"formula_result\",\"level\":\"medium\",\"test_type\":\"puzzle\",\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"subjectTitle\":\"Google Sheets\",\"part\":\"part-3\",\"set_no\":1,\"usage_count\":0},{\"_id\":\"69b1786345baa2b58547f1ce\",\"question_number\":4,\"question\":\"You wrote \u003ccode\u003e=IMPORTXML(\\\"https://example.com\\\", \\\"//div[@class='price']\\\")\u003c/code\u003e but get a #N/A error. What is the likely problem?\",\"options\":{\"A\":\"The URL is invalid or unreachable.\",\"B\":\"The XPath syntax for class attribute is incorrect.\",\"C\":\"IMPORTXML does not support attribute filters.\",\"D\":\"You must use single quotes inside the XPath instead of double quotes.\"},\"correct_answer\":[\"A\"],\"solution_explanation\":\"\u003cdiv class='solution-box'\u003e\u003cspan class='solution-label'\u003e\u003cstrong\u003eSolution:\u003c/strong\u003e\u003c/span\u003e\u003col\u003e\u003cli\u003e\u003ch4\u003eStep 1: Check XPath syntax\u003c/h4\u003eThe XPath \\\"//div[@class='price']\\\" is correct for selecting divs with class 'price'.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eStep 2: Consider other causes of #N/A\u003c/h4\u003e#N/A often means the URL is unreachable or blocked. IMPORTXML supports attribute filters and double quotes inside XPath strings are allowed if escaped properly.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eFinal Answer:\u003c/h4\u003e\u003cstrong\u003eThe URL is invalid or unreachable.\u003c/strong\u003e -\u003e Option A\u003c/li\u003e\u003cli\u003e\u003ch4\u003eQuick Check:\u003c/h4\u003e#N/A often means URL problem [OK]\u003c/li\u003e\u003c/ol\u003e\u003c/div\u003e\",\"quick_trick\":\"Check URL accessibility if #N/A error occurs [OK]\",\"common_mistakes\":[\"Assuming XPath syntax is wrong when it's correct\",\"Not verifying the URL is accessible\",\"Thinking IMPORTXML can't filter by attributes\"],\"subject\":\"google_sheets\",\"pattern\":\"IMPORTXML for structured data\",\"category\":\"Spreadsheet \u0026 Formulas\",\"question_format\":\"MCQ\",\"question_mode\":\"debug\",\"difficulty\":\"medium\",\"topic\":\"Data Import and Connection\",\"type\":\"Spreadsheet \u0026 Formulas\",\"question_type\":\"debug\",\"level\":\"medium\",\"test_type\":\"puzzle\",\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"subjectTitle\":\"Google Sheets\",\"part\":\"part-3\",\"set_no\":1,\"usage_count\":0},{\"_id\":\"69b1786345baa2b58547f1cf\",\"question_number\":5,\"question\":\"You want to import the latest news headlines from \u003ccode\u003ehttps://news.example.com\u003c/code\u003e where headlines are in \u003ccode\u003e\u0026lt;h3 class='headline'\u0026gt;\u003c/code\u003e tags. Which formula correctly imports only the text of these headlines?\",\"options\":{\"A\":\"\u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']\\\")\u003c/code\u003e\",\"B\":\"\u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/text()\\\")\u003c/code\u003e\",\"C\":\"\u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/@text\\\")\u003c/code\u003e\",\"D\":\"\u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/innerText\\\")\u003c/code\u003e\"},\"correct_answer\":[\"B\"],\"solution_explanation\":\"\u003cdiv class='solution-box'\u003e\u003cspan class='solution-label'\u003e\u003cstrong\u003eSolution:\u003c/strong\u003e\u003c/span\u003e\u003col\u003e\u003cli\u003e\u003ch4\u003eStep 1: Understand XPath to get text content\u003c/h4\u003eTo get only the text inside elements, use the XPath function \u003ccode\u003e/text()\u003c/code\u003e after selecting the element.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eStep 2: Evaluate options\u003c/h4\u003e\u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/text()\\\")\u003c/code\u003e correctly uses \u003ccode\u003e/text()\u003c/code\u003e. \u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']\\\")\u003c/code\u003e returns the whole element including tags. \u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/@text\\\")\u003c/code\u003e tries to get an attribute 'text' which doesn't exist. \u003ccode\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/innerText\\\")\u003c/code\u003e uses invalid XPath syntax.\u003c/li\u003e\u003cli\u003e\u003ch4\u003eFinal Answer:\u003c/h4\u003e\u003cstrong\u003e=IMPORTXML(\\\"https://news.example.com\\\", \\\"//h3[@class='headline']/text()\\\")\u003c/strong\u003e -\u003e Option B\u003c/li\u003e\u003cli\u003e\u003ch4\u003eQuick Check:\u003c/h4\u003eUse /text() to get element text [OK]\u003c/li\u003e\u003c/ol\u003e\u003c/div\u003e\",\"quick_trick\":\"Add /text() to XPath to get only text content [OK]\",\"common_mistakes\":[\"Omitting /text() and getting full HTML tags\",\"Using @text which is not an attribute\",\"Trying invalid XPath like innerText\"],\"subject\":\"google_sheets\",\"pattern\":\"IMPORTXML for structured data\",\"category\":\"Spreadsheet \u0026 Formulas\",\"question_format\":\"MCQ\",\"question_mode\":\"application\",\"difficulty\":\"hard\",\"topic\":\"Data Import and Connection\",\"type\":\"Spreadsheet \u0026 Formulas\",\"question_type\":\"application\",\"level\":\"hard\",\"test_type\":\"puzzle\",\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"subjectTitle\":\"Google Sheets\",\"part\":\"part-3\",\"set_no\":1,\"usage_count\":0}]},\"syllabusData\":{\"part\":\"part-3\",\"subject\":\"google_sheets\",\"difficulty\":\"advanced\",\"metadata\":{\"total_topics\":6,\"total_patterns\":45,\"patterns_with_content\":45,\"created_at\":\"2026-03-03T13:36:38.405606Z\",\"version\":\"4.2\",\"upload_tool\":\"upload_to_mongo.py v2.0\"},\"part_title\":\"Advanced\",\"subjectTitle\":\"Google Sheets\",\"topics\":[{\"topic_id\":\"google_sheets_p3_t1\",\"title\":\"Data Import and Connection\",\"order\":1,\"pattern_count\":7,\"patterns\":[{\"pattern_id\":\"google_sheets_why_external_data_expands_analysis\",\"title\":\"Why external data expands analysis\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_importdata_for_csv_tsv\",\"title\":\"IMPORTDATA for CSV/TSV\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_importhtml_for_web_tables\",\"title\":\"IMPORTHTML for web tables\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_importxml_for_structured_data\",\"title\":\"IMPORTXML for structured data\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_importrange_for_other_spreadsheets\",\"title\":\"IMPORTRANGE for other spreadsheets\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_importfeed_for_rss\",\"title\":\"IMPORTFEED for RSS\",\"order\":6,\"has_content\":true},{\"pattern_id\":\"google_sheets_connected_sheets_bigquery\",\"title\":\"Connected Sheets (BigQuery)\",\"order\":7,\"has_content\":true}]},{\"topic_id\":\"google_sheets_p3_t2\",\"title\":\"Apps Script Basics\",\"order\":2,\"pattern_count\":8,\"patterns\":[{\"pattern_id\":\"google_sheets_why_apps_script_automates_google_sheets\",\"title\":\"Why Apps Script automates Google Sheets\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_script_editor_overview\",\"title\":\"Script editor overview\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_custom_functions\",\"title\":\"Custom functions\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_triggers_onedit_onopen\",\"title\":\"Triggers (onEdit, onOpen)\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_reading_and_writing_cell_values\",\"title\":\"Reading and writing cell values\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_creating_custom_menus\",\"title\":\"Creating custom menus\",\"order\":6,\"has_content\":true},{\"pattern_id\":\"google_sheets_sending_emails_from_sheets\",\"title\":\"Sending emails from Sheets\",\"order\":7,\"has_content\":true},{\"pattern_id\":\"google_sheets_api_calls_from_apps_script\",\"title\":\"API calls from Apps Script\",\"order\":8,\"has_content\":true}]},{\"topic_id\":\"google_sheets_p3_t3\",\"title\":\"Advanced Conditional Formatting\",\"order\":3,\"pattern_count\":6,\"patterns\":[{\"pattern_id\":\"google_sheets_why_advanced_rules_highlight_patterns\",\"title\":\"Why advanced rules highlight patterns\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_color_scales\",\"title\":\"Color scales\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_custom_formulabased_rules\",\"title\":\"Custom formula-based rules\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_datebased_formatting\",\"title\":\"Date-based formatting\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_crosscolumn_conditional_rules\",\"title\":\"Cross-column conditional rules\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_managing_rule_priority\",\"title\":\"Managing rule priority\",\"order\":6,\"has_content\":true}]},{\"topic_id\":\"google_sheets_p3_t4\",\"title\":\"Collaboration Features\",\"order\":4,\"pattern_count\":8,\"patterns\":[{\"pattern_id\":\"google_sheets_why_collaboration_is_sheets_superpower\",\"title\":\"Why collaboration is Sheets' superpower\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_realtime_coediting\",\"title\":\"Real-time co-editing\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_comments_and_suggestions\",\"title\":\"Comments and suggestions\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_edit_history_and_version_control\",\"title\":\"Edit history and version control\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_filter_views_vs_filters\",\"title\":\"Filter views vs filters\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_protected_sheets_and_ranges\",\"title\":\"Protected sheets and ranges\",\"order\":6,\"has_content\":true},{\"pattern_id\":\"google_sheets_notification_rules\",\"title\":\"Notification rules\",\"order\":7,\"has_content\":true},{\"pattern_id\":\"google_sheets_publishing_to_web\",\"title\":\"Publishing to web\",\"order\":8,\"has_content\":true}]},{\"topic_id\":\"google_sheets_p3_t5\",\"title\":\"Data Visualization Advanced\",\"order\":5,\"pattern_count\":8,\"patterns\":[{\"pattern_id\":\"google_sheets_why_advanced_charts_tell_deeper_stories\",\"title\":\"Why advanced charts tell deeper stories\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_combo_charts\",\"title\":\"Combo charts\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_sparklines_line_bar_column\",\"title\":\"Sparklines (LINE, BAR, COLUMN)\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_scatter_plots\",\"title\":\"Scatter plots\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_geo_charts_and_maps\",\"title\":\"Geo charts and maps\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_timeline_charts\",\"title\":\"Timeline charts\",\"order\":6,\"has_content\":true},{\"pattern_id\":\"google_sheets_org_charts\",\"title\":\"Org charts\",\"order\":7,\"has_content\":true},{\"pattern_id\":\"google_sheets_chart_interactivity\",\"title\":\"Chart interactivity\",\"order\":8,\"has_content\":true}]},{\"topic_id\":\"google_sheets_p3_t6\",\"title\":\"Productivity and Integration\",\"order\":6,\"pattern_count\":8,\"patterns\":[{\"pattern_id\":\"google_sheets_why_integration_multiplies_value\",\"title\":\"Why integration multiplies value\",\"order\":1,\"has_content\":true},{\"pattern_id\":\"google_sheets_linking_sheets_with_docs\",\"title\":\"Linking Sheets with Docs\",\"order\":2,\"has_content\":true},{\"pattern_id\":\"google_sheets_linking_sheets_with_slides\",\"title\":\"Linking Sheets with Slides\",\"order\":3,\"has_content\":true},{\"pattern_id\":\"google_sheets_google_forms_to_sheets\",\"title\":\"Google Forms to Sheets\",\"order\":4,\"has_content\":true},{\"pattern_id\":\"google_sheets_sheets_with_google_data_studio_looker\",\"title\":\"Sheets with Google Data Studio (Looker)\",\"order\":5,\"has_content\":true},{\"pattern_id\":\"google_sheets_addons_and_extensions\",\"title\":\"Add-ons and extensions\",\"order\":6,\"has_content\":true},{\"pattern_id\":\"google_sheets_template_gallery_usage\",\"title\":\"Template gallery usage\",\"order\":7,\"has_content\":true},{\"pattern_id\":\"google_sheets_sheets_api_basics\",\"title\":\"Sheets API basics\",\"order\":8,\"has_content\":true}]}]},\"modeCode\":\"TMC\",\"productId\":\"codefly\"}]]\n"])</script></body></html>