نحوه استفاده از Google Sheets تابع QUERY - بندهای استاندارد و یک ابزار جایگزین

  • این را به اشتراک بگذارید
Michael Brown

اگر برای مدتی این وبلاگ را دنبال می‌کنید، ممکن است تابع QUERY را برای کاربرگ‌نگار Google به خاطر بسپارید. من آن را به عنوان یک راه حل ممکن برای چند مورد ذکر کردم. اما این موارد برای کشف کامل پتانسیل آن کافی نیست. امروز وقت آن رسیده است که این ابرقهرمان صفحات گسترده را به درستی بشناسیم. و حدس بزنید - یک ابزار به همان اندازه قابل توجه نیز وجود خواهد داشت :)

آیا می دانستید که تابع Google Sheets QUERY به عنوان قدرتمندترین ابزار در صفحات گسترده در نظر گرفته می شود؟ نحو عجیب و غریب آن ده ها عملیات مختلف را ترجیح می دهد. بیایید سعی کنیم قطعات آن را تجزیه کنیم تا یک بار برای همیشه آنها را یاد بگیریم؟

    Syntax of Google Sheets QUERY تابع

    در نگاه اول، Google Sheets QUERY فقط یک تابع دیگر با 1 اختیاری و 2 آرگومان مورد نیاز:

    =QUERY(داده، پرس و جو، [سرصفحه])
    • داده محدوده پردازش است. ضروری. اینجا همه چیز شفاف است.

      توجه داشته باشید. فقط یک یادآوری کوچک در اینجا توسط Google ایجاد شده است: هر ستون باید یک نوع داده داشته باشد: متنی، یا عددی، یا بولی. اگر انواع مختلفی وجود دارد، QUERY با یکی از مواردی که بیشتر اتفاق می‌افتد کار می‌کند. انواع دیگر به عنوان سلول های خالی در نظر گرفته می شوند. عجیب است، اما این را در نظر داشته باشید.

    • پرس و جو راهی برای پردازش داده است. ضروری. اینجاست که همه سرگرمی ها شروع می شود. تابع QUERY برگه‌های Google از زبان خاصی برای این آرگومان استفاده می‌کند: Google Visualization APIمعیار
    • یک مکان برای نتیجه انتخاب کنید
    • نتیجه را به عنوان فرمول QUERY یا به عنوان مقدار وارد کنید

    شوخی نمیکنم خودتون ببینید. اگرچه این GIF سرعت بیشتری داشت، کمتر از یک دقیقه طول کشید تا همه معیارها را دقیق تنظیم کنم و به نتیجه رسیدم:

    اگر به اندازه کافی کنجکاو هستید، در اینجا جزئیات بیشتری ارائه شده است. ویدیویی که نحوه عملکرد این افزونه را نشان می دهد:

    امیدوارم به این افزونه فرصت دهید و آن را از Google Workspace Marketplace دریافت کنید. خجالتی نباشید و بازخورد خود را به اشتراک بگذارید، به خصوص اگر چیزی در مورد آن وجود دارد که دوست ندارید.

    همچنین، به راحتی می توانید صفحه آموزشی یا صفحه اصلی آن را بررسی کنید.

    <3 <3 <3زبان پرس و جو. به روشی مشابه SQL نوشته شده است. اساساً، این مجموعه ای از بندهای خاص (دستورات) است که برای گفتن اینکه تابع چه کاری انجام دهد استفاده می شود: انتخاب، گروه بر اساس، محدود کردن، و غیره.

    توجه داشته باشید. کل آرگومان باید در دو نقل قول محصور شود. ارزش ها به نوبه خود باید در گیومه پیچیده شوند.

  • headers برای زمانی که باید تعداد ردیف های سرصفحه را در داده های خود مشخص کنید اختیاری است. آرگومان را حذف کنید (همانطور که در زیر انجام می‌دهم)، و Google Sheets QUERY آن را بر اساس محتویات جدول شما فرض می‌کند.
  • اکنون اجازه دهید در بندها و هر کاری که انجام می‌دهند عمیق‌تر بگردیم.

    کلوزهای مورد استفاده در فرمول های Google Sheets QUERY

    زبان پرس و جو شامل 10 بند است. آنها ممکن است در نگاه اول بترسند، به خصوص اگر با SQL آشنا نباشید. اما من قول می دهم، هنگامی که آنها را بشناسید، یک سلاح صفحه گسترده قدرتمند در اختیار خواهید داشت.

    من قصد دارم هر بند را پوشش دهم و با استفاده از این لیست از دانش آموزان خیالی و موضوعات کاغذی آنها، مثال هایی از فرمول ارائه کنم. :

    بله، من یکی از آن آدم های عجیب و غریبی هستم که فکر می کنند پلوتو باید یک سیاره باشد :)

    نکته. چندین بند را می توان در یک تابع Google Sheets QUERY استفاده کرد. اگر همه آنها را لانه کردید، حتماً ترتیب ظاهر آنها را در این مقاله دنبال کنید.

    انتخاب (همه یا ستون‌های خاص)

    از اولین بند - انتخاب - برای بیان اینکه چه ستون‌هایی را باید با کاربرگ‌نگار Google QUERY برگردانید استفاده می‌شود.از یک صفحه یا جدول دیگر.

    مثال 1. همه ستون ها را انتخاب کنید

    برای واکشی هر ستون، از انتخاب با ستاره استفاده کنید - انتخاب *

    =QUERY(Papers!A1:G11,"select *")

    نکته. اگر پارامتر انتخاب را حذف کنید، Google Sheets QUERY همه ستون ها را به طور پیش فرض برمی گرداند:

    =QUERY(Papers!A1:G11)

    مثال 2. ستون های خاصی را انتخاب کنید

    برای کشیدن فقط ستون های خاص ، آنها را بعد از بند انتخاب فهرست کنید:

    =QUERY(Papers!A1:G11, "select A,B,C")

    نکته. ستون های مورد علاقه به همان ترتیبی که در فرمول ذکر کرده اید کپی می شوند:

    =QUERY(Papers!A1:G11, "select C,B,A")

    Google Sheets QUERY – Where clause

    Google Sheets QUERY where برای تنظیم شرایط داده‌هایی که می‌خواهید دریافت کنید استفاده می‌شود. به عبارت دیگر، به عنوان یک فیلتر عمل می‌کند.

    اگر از این بند استفاده می‌کنید، تابع QUERY برای کاربرگ‌نگار Google ستون‌ها را برای مقادیری جستجو می‌کند که شرایط شما را برآورده می‌کند و همه موارد منطبق را به شما بازمی‌گرداند.

    نکته. Where می تواند بدون بند انتخاب عمل کند.

    طبق معمول، برای تعیین شرایط، مجموعه ای از عملگرهای ویژه برای شما وجود دارد:

    • عملگرهای مقایسه ساده ( برای مقادیر عددی ): =, , >, >=, <, <=
    • عملگرهای مقایسه پیچیده ( برای رشته ها ): شامل، شروع می شود، پایان می یابد با، مطابقت دارد، != (منطبق نیست / برابر نیست)، مانند .
    • عملگرهای منطقی برای ترکیب چند شرط : و، یا، نه .
    • اپراتورها برای خالی/ خالی نیست : تهی است، پوچ نیست .

    نکته. اگر از اینکه مجبور هستید دوباره با چنین تعداد زیادی اپراتور سروکار داشته باشید ناراحت یا نگران هستید، ما شما را احساس می کنیم. منطبق‌های چندگانه Vlookup ما همه موارد منطبق را پیدا می‌کند و در صورت لزوم فرمول‌های QUERY را در Google Sheets برای شما می‌سازد.

    بیایید ببینیم که این عملگرها در فرمول‌ها چگونه رفتار می‌کنند.

    مثال 1. Where با اعداد

    من where را به Google Sheets خود اضافه می‌کنم برای دریافت اطلاعات در مورد سیاراتی که بیش از 10 قمر دارند از بالا پرس و جو کنید:

    =QUERY(Papers!A1:G11,"select A,B,C,F where F>=10")

    نکته. من همچنین ستون F را برای واکشی ذکر کردم تا مطمئن شوم معیار رعایت شده است. اما کاملا اختیاری است. لازم نیست ستون هایی را با شرایط در نتیجه وارد کنید:

    =QUERY(Papers!A1:G11,"select A,B,C where F>=10")

    مثال 2. Where با رشته های متنی

    • می خواهم ببینم همه ردیف هایی که نمره آنها F یا F+ است. من از عملگر contains برای آن استفاده خواهم کرد:

      =QUERY(Papers!A1:G11,"select A,B,C,G where G contains 'F'")

      توجه داشته باشید. فراموش نکنید که متن خود را با علامت نقل قول احاطه کنید.

    • برای دریافت همه ردیف‌ها فقط با F ، فقط contains را با علامت مساوی (=) جایگزین کنید:

      =QUERY(Papers!A1:G11,"select A,B,C,G where G="F"")

    • برای بررسی مقالاتی که هنوز تحویل داده نشده اند (جایی که نمره وجود ندارد)، ستون G را برای موارد خالی بررسی کنید:

      =QUERY(Papers!A1:G11,"select A,B,C,G where G is null'")

    مثال 3. کجا با تاریخ

    حدس بزنید چه چیزی: Google Sheets QUERY حتی توانسته است تاریخ ها را رام کند!

    از آنجایی که صفحات گسترده تاریخ ها را به عنوان شماره سریال ذخیره می کنند، معمولاً بایدبه کمک توابع ویژه مانند DATE یا DATEVALUE، YEAR، MONTH، TIME، و غیره متوسل شوید.

    اما QUERY راه خود را در مورد تاریخ ها پیدا کرده است. برای وارد کردن صحیح آنها، به سادگی کلمه تاریخ را تایپ کنید و سپس خود تاریخ را با قالب yyyy-mm-dd اضافه کنید: date '2020-01-01'

    این فرمول من برای دریافت همه ردیف‌های دارای تاریخ گفتار قبل از ۱ ژانویه ۲۰۲۰ است:

    =QUERY(Papers!A1:G11,"select A,B,C where B

    مثال 4. چندین شرط را ترکیب کنید

    برای استفاده از یک دوره زمانی معین به عنوان معیار، باید دو شرط را با هم ترکیب کنید.

    بیایید سعی کنیم مقالاتی را که در پاییز 2019 تحویل داده شده اند را بازیابی کنیم. اولین معیار باید تاریخ در تاریخ باشد. یا بعد از 1 سپتامبر 2019 ، دوم — در یا قبل از 30 نوامبر 2019 :

    =QUERY(Papers!A1:G11,"select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")

    یا، من می توانند مقالات را بر اساس این پارامترها انتخاب کنند:

    • قبل از 31 دسامبر 2019 ( B )
    • به عنوان نمره A یا A+ داشته باشند ( G حاوی "A" )
    • یا B/B+ ( G حاوی "B" )

    =QUERY(Papers!A1:G11,"select A,B,C,G where B

    نکته. اگر سرتان در حال منفجر شدن است، هنوز تسلیم نشوید. ابزاری وجود دارد که کاملاً قادر است همه این فرمول ها را بدون توجه به تعداد معیارها برای شما بسازد. برای آشنایی با مقاله به سمت راست به انتهای مقاله بروید.

    Google Sheets QUERY – Group By

    Google Sheets QUERY دستور group by برای به هم پیوستن ردیف ها استفاده می شود. با این حال، شما باید از برخی توابع جمع استفاده کنید تا آنها را خلاصه کنید.

    توجه داشته باشید. گروه بر اساس باید همیشه از عبارت انتخاب پیروی کند.

    متأسفانه، چیزی برای گروه بندی در جدول من وجود ندارد زیرا مقادیر تکرار شونده وجود ندارد. بنابراین اجازه دهید کمی آن را تنظیم کنم.

    فرض کنید، تمام مقالات فقط توسط 3 دانش آموز تهیه شود. من می توانم بالاترین نمره ای که هر دانش آموز گرفت را پیدا کنم. اما از آنجایی که آنها حروف هستند، تابع MIN است که باید روی ستون G اعمال کنم:

    =QUERY(Papers!A1:G11,"select A,min(G) group by A")

    توجه داشته باشید. اگر از یک تابع تجمیع با هیچ ستونی در عبارت انتخاب استفاده نمی کنید (ستون A در مثال من)، باید همه آنها را در گروه با<2 کپی کنید> بند

    Google Sheets QUERY – Pivot

    Google Sheets QUERY pivot بند برعکس عمل می کند، اگر ممکن است بگویم. این داده‌ها را از یک ستون به یک ردیف با ستون‌های جدید منتقل می‌کند و مقادیر دیگر را بر این اساس گروه‌بندی می‌کند.

    برای کسانی که با تاریخ سروکار دارند، می‌تواند یک کشف واقعی باشد. شما می توانید نگاهی گذرا به تمام سال های متمایز از آن ستون منبع داشته باشید.

    توجه داشته باشید. وقتی نوبت به pivot می‌رسد، هر ستونی که در عبارت select استفاده می‌شود باید با یک تابع جمع پوشانده شود. در غیر این صورت، باید در گروه با دستور به دنبال pivot شما ذکر شود.

    به یاد داشته باشید، جدول من اکنون فقط به 3 دانش آموز اشاره می کند. من می‌خواهم تابع را بسازم که به من بگوید هر دانش‌آموز چند گزارش داده است:

    =QUERY(Papers!A1:G11,"select count(G) pivot A")

    Google Sheets QUERY – سفارش براساس

    این یکی بسیار آسان است :) به آن عادت کرده استنتیجه را بر اساس مقادیر موجود در ستون های خاص مرتب کنید.

    نکته. همه بندهای قبلی هنگام استفاده از ترتیب بر اساس اختیاری هستند. من از انتخاب برای برگرداندن ستون های کمتری برای اهداف نمایشی استفاده می کنم.

    بیایید به جدول اصلی خود برگردیم و گزارش‌ها را بر اساس تاریخ گفتار مرتب کنیم.

    این فرمول بعدی Google Sheets QUERY ستون‌های A، B و C را برای من دریافت می‌کند، اما در همان زمان آنها را بر اساس تاریخ در ستون B:

    =QUERY(Papers!A1:G11,"select A,B,C order by B")

    محدودیت

    چه می شود اگر به شما بگویم، لازم نیست هر ردیف را وارد کنید نتیجه؟ اگر به شما بگویم Google Sheets QUERY می‌تواند فقط مقدار معینی از اولین مواردی را که پیدا می‌کند جمع‌آوری کند؟

    خب، بند حد برای کمک به شما در این زمینه طراحی شده است. تعداد سطرهایی را که باید بر اساس تعداد داده شده بازگردانده شوند، محدود می کند.

    نکته. به راحتی می توانید از محدودیت بدون سایر بندهای قبلی استفاده کنید.

    این فرمول 5 سطر اول را نشان می دهد که در آن ستون با نمره ها دارای علامت است (خالی نیست):

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 5")

    Offset

    این بند به نوعی مخالف مورد قبلی است. در حالی که limit تعداد ردیف هایی را که مشخص می کنید به شما می دهد، offset آنها را رد می کند و بقیه را بازیابی می کند.

    نکته. Offset همچنین به هیچ بند دیگری نیاز ندارد.

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null offset 5")

    اگر سعی کنید و از هر دو limit و offset استفاده کنید، موارد زیر رخ خواهد داد:

    1. Offset ردیف‌ها را در ابتدا رد می‌کند.
    2. Limit تعدادی از ردیف‌ها را برمی‌گرداند.ردیف‌های زیر را دنبال کنید.

    =QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 3 offset 3")

    از 11 ردیف داده (اولین ردیف یک سرصفحه است و تابع QUERY در Google Sheets با درک آن کار خوبی انجام می‌دهد)، آفست اولین ردیف را رد می‌کند. 3 ردیف. Limit 3 ردیف بعدی را برمی گرداند (از ردیف چهارم شروع می شود):

    Google Sheets QUERY – Label

    Google Sheets QUERY label command به شما امکان می دهد نام هدر ستون ها را تغییر دهید.

    نکته. سایر بندها برای برچسب نیز اختیاری هستند.

    ابتدا برچسب و سپس شناسه ستون و یک نام جدید قرار دهید. اگر نام چند ستون را تغییر دادید، هر جفت برچسب ستون جدید را با کاما جدا کنید:

    =QUERY(Papers!A1:G11,"select A,B,C label A 'Name', B 'Date'")

    Format

    <1 بند>format

    امکان تغییر قالب تمام مقادیر در یک ستون را فراهم می کند. برای این کار، به یک الگو نیاز دارید که پشت قالب مورد نظر قرار گیرد.

    نکته. بند قالب همچنین می تواند به صورت انفرادی در صفحه Google QUERY پخش شود.

    =QUERY(Papers!A1:G11,"select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")

    نکته. من در این پست وبلاگ به برخی از قالب‌های تاریخ برای کاربرگ‌نگار Google QUERY اشاره کردم. قالب‌های دیگر را می‌توان مستقیماً از صفحات گسترده دریافت کرد: Format > شماره > قالب های بیشتر > قالب شماره سفارشی .

    گزینه ها

    این یکی برای تنظیم برخی تنظیمات اضافی برای داده های نتیجه استفاده می شود.

    به عنوان مثال، دستوری مانند no_values فقط سلول های قالب بندی شده را برمی گرداند.

    سریعترین راه برای ساخت فرمولهای QUERY – چندین تطابق Vlookup

    هر چقدر هم که عملکرد QUERY در Google Sheets قدرتمند باشد،ممکن است نیاز به یک منحنی یادگیری داشته باشد. این یک چیز است که هر بند را به طور جداگانه در یک میز کوچک نشان دهیم، و کاملاً چیز دیگری است که سعی کنیم همه چیز را به درستی با چند بند و یک جدول بسیار بزرگتر بسازیم.

    به همین دلیل تصمیم گرفتیم که کاربرگ‌نگار Google QUERY را در یک صفحه قرار دهیم. رابط کاربر پسند و آن را به یک افزونه تبدیل کنید.

    چرا Multiple VLOOKUP Maches بهتر از فرمول ها است؟

    خب، با افزونه مطلقاً نیازی به<19 نیست>:

    • هر چیزی را در مورد آن بندها بفهمید . ایجاد بسیاری از شرایط پیچیده در افزونه واقعاً آسان است: به هر تعداد که نیاز دارید، علیرغم سفارش آنها برای واکشی به تعداد مورد نیاز مطابقت.

      توجه داشته باشید. در حال حاضر، بندهای زیر در ابزار گنجانده شده است: انتخاب، کجا، محدود، و offset . اگر وظیفه شما به بندهای دیگری نیز نیاز دارد، لطفاً در زیر نظر دهید - شاید به ما کمک کنید تا بهبود پیدا کنیم. فهرست کشویی.

    • معمای روش صحیح برای وارد کردن تاریخ و زمان . این افزونه به شما امکان می دهد آنها را همانطور که قبلاً بر اساس منطقه صفحه گسترده خود وارد می کردید وارد کنید.

      نکته. همیشه یک اشاره با نمونه هایی از انواع داده های مختلف در ابزار موجود است.

    به عنوان یک پاداش ، شما قادر خواهید بود:

    • پیش نمایش هر دو نتیجه و فرمول
    • تنظیمات سریع را انجام دهید

    مایکل براون یک علاقه‌مند به فناوری است که علاقه زیادی به ساده‌سازی فرآیندهای پیچیده با استفاده از ابزارهای نرم‌افزاری دارد. او با بیش از یک دهه تجربه در صنعت فناوری، مهارت های خود را در Microsoft Excel و Outlook و همچنین Google Sheets و Docs تقویت کرده است. وبلاگ مایکل اختصاص داده شده است تا دانش و تخصص خود را با دیگران به اشتراک بگذارد و نکات و آموزش هایی را برای بهبود بهره وری و کارایی ارائه دهد. چه یک حرفه ای با تجربه باشید و چه مبتدی، وبلاگ مایکل، بینش های ارزشمند و توصیه های عملی را برای استفاده حداکثری از این ابزارهای نرم افزاری ضروری ارائه می دهد.