{"id":15599,"date":"2023-08-16T09:00:00","date_gmt":"2023-08-16T00:00:00","guid":{"rendered":"https:\/\/www.autooffice.co.kr\/blog\/2023\/08\/16\/filtering-data-in-google-sheets-with-apps-script\/"},"modified":"2025-09-15T17:14:43","modified_gmt":"2025-09-15T08:14:43","slug":"filtering-data-in-google-sheets-with-apps-script","status":"publish","type":"post","link":"https:\/\/www.autooffice.co.kr\/en\/blog\/2023\/08\/16\/filtering-data-in-google-sheets-with-apps-script\/","title":{"rendered":"Filtering data using include in Apps Script"},"content":{"rendered":"<p>This post is a corrected post after AI explains the code included in the book <a title=\"\" href=\"https:\/\/www.autooffice.io\/content\/ebizbooks-apps-script\" target=\"_blank\" rel=\"noopener\">&#8220;Google Apps Script 101: Building Work Automation For Free&#8221;<\/a>. Added a <s>strikethrough<\/s> when editing what AI has written, and added <span style=\"color: #ff3366;\">color<\/span> when edited by author<\/p>\n<h2>Table of Contents<\/h2>\n<ol>\n<li><a href=\"#summary\">Summary<\/a><\/li>\n<li><a href=\"#code\">Code<\/a><\/li>\n<li><a href=\"#explanation\">Code Explanation<\/a><\/li>\n<li><a href=\"#example\">Example<\/a><\/li>\n<li><a href=\"#ai-prompt\">AI Prompt<\/a><\/li>\n<\/ol>\n<h2 id=\"summary\">Summary<\/h2>\n<p>In this blog post, we will explore how to filter data in Google Sheets using Apps Script. We will write a function that filters a specific column in a worksheet based on a given criteria and returns the filtered data.<\/p>\n<h2 id=\"code\">Code<\/h2>\n<pre><code>function filterName() {\n  const SS = SpreadsheetApp.getActiveSpreadsheet()\n  const T_SHEET6 = SS.getSheetByName('\uc2dc\ud2b86')\n\n  const data = T_SHEET6.getDataRange().getValues()\n  let dataFilter = data.filter(row =&gt; row[1].includes('\ubcf4\ubbf8'))\n  Logger.log(dataFilter)\n}<\/code><\/pre>\n<h2 id=\"explanation\">Code Explanation<\/h2>\n<p>The code declares a function named <code>filterName<\/code>. It retrieves the active spreadsheet and gets a specific sheet using <code>getSheetByName<\/code> method.<\/p>\n<p>The <code>getDataRange<\/code> method is used to get the range of data in the sheet, and the <code>getValues<\/code> method retrieves the values in the range.<\/p>\n<p>The <code>filter<\/code> method is applied to the data array, filtering rows where the second column (index 1) includes the string &#8216;\ubcf4\ubbf8&#8217;. The filtered data is then logged using the <code>Logger.log<\/code> method.<\/p>\n<p><span style=\"color: #ff3366;\">Additional explanations about include can be received from AI as follows.<\/span><\/p>\n<p>`data.filter(row =&gt; row[1].includes(&#8216;Bomi&#8217;))` is the element whose second column value (name) contains &#8216;Bomi&#8217; for each element of array `data` JavaScript code that filters only . This code means using the array&#8217;s `filter()` method to return only the elements that meet the condition as a new array.<\/p>\n<p>The arrow function used here `row =&gt; row[1].includes(&#8216;Bomi&#8217;)` takes each element, gets the value of the second column of that element, and determines whether the value includes &#8216;Bomi&#8217;.<\/p>\n<p>Description of each part:<br \/>\n&#8211; `data`: An array to filter.<br \/>\n&#8211; `filter()`: A method of an array, which applies a given function to each element to meet the condition. Returns a new array of .<br \/>\n&#8211; `row`: Each element in the array.<br \/>\n&#8211; `row[1]`: The value of the second column of each element. Array indexes in JavaScript start at 0, so the second column corresponds to index 1. Inspect. So, `row[1].includes(&#8216;Bomi&#8217;)` checks whether the values in the second column contain &#8216;Bomi&#8217;.<\/p>\n<p>As a result, `data.filter(row =&gt; row[1].includes(&#8216;Bomi&#8217;))` is a code that filters only elements whose value in the second column contains &#8216;Bomi&#8217; and returns it as a new array. .<\/p>\n<h2 id=\"example\">Example<\/h2>\n<p>Let&#8217;s say we have a Google Sheet with a column containing names of employees. We want to filter the data to only include rows where the name includes the string &#8216;John&#8217;.<\/p>\n<pre><code>function filterName() {\n  const SS = SpreadsheetApp.getActiveSpreadsheet()\n  const T_SHEET = SS.getSheetByName('Sheet1')\n\n  const data = T_SHEET.getDataRange().getValues()\n  let filteredData = data.filter(row =&gt; row[1].includes('John'))\n  Logger.log(filteredData)\n}<\/code><\/pre>\n<h2 id=\"ai-prompt\">AI Prompt<\/h2>\n<p><s>Write a function that filters a specific column in a Google Sheet based on a given criteria and logs the filtered data. The criteria should be passed as a parameter to the function.<\/s><\/p>\n<p><s>Example usage: <code>filterColumn('Sheet1', 2, 'John')<\/code><\/s><\/p>\n<p><s>Expected output: An array of rows where the second column in &#8216;Sheet1&#8217; includes the string &#8216;John&#8217;.<\/s><\/p>\n<p><span style=\"color: #ff3366;\">Get data from Google sheet and write code to check if a certain column contains the specified character. <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog post, we will explore how to filter data in Google Sheets using Apps Script. We will write a function that filters a specific column in a worksheet based on a given criteria and returns the filtered data.<\/p>\n","protected":false},"author":1,"featured_media":15630,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[5,118],"tags":[512,69,25,541,7],"class_list":["post-15599","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spreadsheet","category-apps-script","tag-ai-assisted","tag-script","tag-filter","tag-include","tag-spreadsheet"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"en","enabled_languages":["ko","en"],"languages":{"ko":{"title":true,"content":true,"excerpt":true},"en":{"title":true,"content":true,"excerpt":true}}},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/posts\/15599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/comments?post=15599"}],"version-history":[{"count":5,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/posts\/15599\/revisions"}],"predecessor-version":[{"id":17160,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/posts\/15599\/revisions\/17160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/media\/15630"}],"wp:attachment":[{"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/media?parent=15599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/categories?post=15599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.autooffice.co.kr\/en\/wp-json\/wp\/v2\/tags?post=15599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}