ফিল্টার

আপনি যখন স্প্রেডশীট দেখেন তখন ফিল্টার আপনাকে ডেটা বাছাই এবং ফিল্টার করতে দেয়। ফিল্টার আপনার স্প্রেডশীটে ডেটা মান পরিবর্তন করে না। আপনি অস্থায়ীভাবে তথ্য লুকাতে বা সাজানোর জন্য ফিল্টার ব্যবহার করতে পারেন। ফিল্টার চালু থাকাকালীন নির্দিষ্ট ফিল্টারের মানদণ্ডের সাথে মেলে এমন ডেটা প্রদর্শিত হয় না। ফিল্টার ভিউ সহ, আপনি বিভিন্ন নামের ফিল্টার সংরক্ষণ করতে পারেন এবং যখনই চান তাদের মধ্যে স্যুইচ করতে পারেন।

ফিল্টার ব্যবহারের ক্ষেত্রে কিছু উদাহরণ নিচে দেওয়া হল:

  • একটি নির্দিষ্ট কলাম দ্বারা ডেটা সাজান। উদাহরণস্বরূপ, শেষ নাম অনুসারে ব্যবহারকারীর রেকর্ডগুলি সাজান।
  • একটি নির্দিষ্ট শর্ত পূরণ করে এমন ডেটা লুকান। উদাহরণস্বরূপ, 2 বছরের বেশি পুরানো সমস্ত রেকর্ড লুকান।
  • একটি নির্দিষ্ট মান মেলে তথ্য লুকান. উদাহরণস্বরূপ, "বন্ধ" স্ট্যাটাস সহ সমস্ত সমস্যা লুকান।

মৌলিক ফিল্টার

একটি স্প্রেডশীটের জন্য BasicFilter হল ডিফল্ট ফিল্টার যেটি প্রয়োগ করা হয় যখনই কেউ স্প্রেডশীটটি দেখে। একটি স্প্রেডশীটে প্রতি শীটে একটি মৌলিক ফিল্টার থাকতে পারে। আপনি এটি পরিষ্কার করে মৌলিক ফিল্টার বন্ধ করতে পারেন। এটি স্প্রেডশীট থেকে ফিল্টার এবং এর সমস্ত সেটিংস সরিয়ে দেয়। আপনি যদি একই ফিল্টারটি আবার চালু করতে চান তবে আপনাকে আবার মানদণ্ড সেট করতে হবে।

মৌলিক ফিল্টার পরিচালনা করুন

মৌলিক ফিল্টার সেট বা সাফ করতে, উপযুক্ত অনুরোধের ধরন সহ spreadsheets.batchUpdate পদ্ধতি ব্যবহার করুন:

  • মৌলিক ফিল্টার সেট করতে, SetBasicFilterRequest পদ্ধতি ব্যবহার করুন।
  • মৌলিক ফিল্টার সাফ করতে, ClearBasicFilterRequest পদ্ধতি ব্যবহার করুন।

মৌলিক ফিল্টার তালিকাভুক্ত করতে, spreadsheets.get পদ্ধতি ব্যবহার করুন এবং fields URL প্যারামিটারটিকে sheets/basicFilter সেট করুন। নিম্নলিখিত spreadsheets.get কোড নমুনা একটি ফিল্ড মাস্ক সহ একটি Google পত্রক URL দেখায়:

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/basicFilter)

ফিল্টার ভিউ

একটি FilterView হল একটি নামযুক্ত ফিল্টার যা আপনি যখনই চান বন্ধ এবং চালু করতে পারেন৷ একটি স্প্রেডশীটে একাধিক ফিল্টার ভিউ থাকতে পারে, কিন্তু আপনি একবারে শুধুমাত্র একটি প্রয়োগ করতে পারেন।

ফিল্টার ভিউয়ের জন্য নিচে কিছু উদাহরণ ব্যবহার করা হল:

  • আপনার কাছে বিভিন্ন ফিল্টার রয়েছে যা আপনি ডেটা দেখার সময় মধ্যে পরিবর্তন করতে চান৷
  • আপনার স্প্রেডশীটে সম্পাদনা করার অ্যাক্সেস নেই তবে আপনি এখনও একটি ফিল্টার প্রয়োগ করতে চান৷ এই ক্ষেত্রে, আপনি একটি অস্থায়ী ফিল্টার দৃশ্য তৈরি করতে পারেন যা শুধুমাত্র আপনার কাছে দৃশ্যমান।
  • আপনি চান যে প্রতিটি ব্যক্তির সাথে আপনি আপনার স্প্রেডশীট ভাগ করে ডেটা আলাদাভাবে দেখতে পারেন৷ স্প্রেডশীট ইউআরএলে spreadsheetId এবং filterViewId প্রদান করে আপনি যে ফিল্টার ভিউটি প্রয়োগ করতে চান তা নির্দিষ্ট করতে পারেন। এটি করার জন্য, আপনি ফিল্টার ভিউ তৈরি করার সময় প্রতিক্রিয়াতে ফিরে আসা filterViewId ব্যবহার করুন।

    নিম্নলিখিত কোড নমুনা একটি ফিল্টার ভিউ সহ একটি Google পত্রক URL দেখায়:

    https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0&fvid=FILTER_VIEW_ID

ফিল্টার ভিউ পরিচালনা করুন

ফিল্টার ভিউ তৈরি করতে, সদৃশ করতে, পরিবর্তন করতে বা মুছতে, যথাযথ অনুরোধের ধরন সহ spreadsheets.batchUpdate পদ্ধতি ব্যবহার করুন:

  • একটি ফিল্টার ভিউ তৈরি করতে, AddFilterViewRequest পদ্ধতি ব্যবহার করুন।
  • একটি ফিল্টার দৃশ্যের একটি অনুলিপি করতে, DuplicateFilterViewRequest পদ্ধতি ব্যবহার করুন।
  • একটি ফিল্টার ভিউ এর বৈশিষ্ট্য পরিবর্তন করতে, UpdateFilterViewRequest পদ্ধতি ব্যবহার করুন।
  • একটি ফিল্টার ভিউ মুছতে, DeleteFilterViewRequest পদ্ধতি ব্যবহার করুন।

আপনার সমস্ত ফিল্টার ভিউ তালিকাভুক্ত করতে, spreadsheets.get পদ্ধতিটি ব্যবহার করুন এবং fields URL প্যারামিটারটিকে sheets/filterViews এ সেট করুন। নিম্নলিখিত spreadsheets.get কোড নমুনা একটি ফিল্ড মাস্ক সহ একটি Google পত্রক URL দেখায়:

GET https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID?fields=sheets/filterViews)

ফিল্টার প্রতিনিধিত্ব

নিম্নলিখিত কোড নমুনা একটি FilterView অবজেক্টের জন্য JSON উপস্থাপনা দেখায়। BasicFilter অবজেক্টটি একই, এটিতে filterViewId এবং title ক্ষেত্রগুলির অভাব নেই এবং এটি একটি নামযুক্ত পরিসর ব্যবহার করতে পারে না।

{
  "filterViewId": number,
  "title": string,
  "range": {
    object(GridRange)
  },
  "namedRangeId": string,
  "sortSpecs": [
    {
      object(SortSpec)
    }
  ],
  "criteria": {
    string: {
      object(FilterCriteria)
    },
    ...
  }
}

উদাহরণ ডেটা

এই নথির বাকি অংশ নীচের উদাহরণ বিক্রয় ডেটা টেবিল উল্লেখ করে:

সারণি 1. উদাহরণ বিক্রয় তথ্য
ডি জি
1 আইটেম বিভাগ মডেল নম্বার খরচ পরিমাণ অঞ্চল বিক্রয়কর্মী জাহাজের তারিখ
2 চাকা W-24 $20.50 4 পশ্চিম বেথ 3/1/2016
3 দরজা D-01X $15.00 2 দক্ষিণ আমীর 3/15/2016
4 ফ্রেম FR-0B1 $34.00 8 পূর্ব হান্না 3/12/2016
5 প্যানেল পি-034 $6.00 4 উত্তর ডেভিন 3/15/2016
6 প্যানেল পি-052 $11.50 7 পূর্ব এরিক 5/16/2016
7 চাকা W-24 $20.50 11 দক্ষিণ শেলডন 4/30/2016
8 ইঞ্জিন ENG-0161 $330.00 2 উত্তর জেসি 7/2/2016

বাছাই স্পেসিফিকেশন

একটি ফিল্টার একাধিক সাজানোর স্পেসিফিকেশন থাকতে পারে। এই স্পেসিফিকেশনগুলি কীভাবে ডেটা সাজাতে হবে তা নির্ধারণ করে এবং নির্দিষ্ট ক্রমে প্রয়োগ করা হয়। SortSpec.dimensionIndex অ্যাট্রিবিউট কলাম সূচী নির্দিষ্ট করে যে সাজানোর জন্য প্রয়োগ করা উচিত।

নিম্নলিখিত কোড নমুনা একটি সাজানোর স্পেসিফিকেশন দেখায়:

[
  {
    "dimensionIndex": 3,
    "sortOrder": "ASCENDING"
  },
  {
    "dimensionIndex": 6,
    "sortOrder": "ASCENDING"
  }
]

উদাহরণ বিক্রয় ডেটাতে প্রয়োগ করা হলে, এই স্পেসিফিকেশনটি প্রথমে "পরিমাণ" দ্বারা সাজানো হয় এবং তারপরে, যদি 2 সারিতে একই পরিমাণ থাকে, তাহলে "শিপ তারিখ" দ্বারা।

সারণি 2. বিক্রয় ডেটা 2 কলাম দ্বারা সাজানো
ডি জি
1 আইটেম বিভাগ মডেল নম্বার খরচ পরিমাণ অঞ্চল বিক্রয়কর্মী জাহাজের তারিখ
2 দরজা D-01X $15.00 2 দক্ষিণ আমীর 3/15/2016
3 ইঞ্জিন ENG-0161 $330.00 2 উত্তর জেসি 7/2/2016
4 চাকা W-24 $20.50 4 পশ্চিম বেথ 3/1/2016
5 প্যানেল পি-034 $6.00 4 উত্তর ডেভিন 3/15/2016
6 প্যানেল পি-052 $11.50 7 পূর্ব এরিক 5/16/2016
7 ফ্রেম FR-0B1 $34.00 8 পূর্ব হান্না 3/12/2016
8 চাকা W-24 $20.50 11 দক্ষিণ শেলডন 4/30/2016

ফিল্টার মানদণ্ড

FilterCriteria পদ্ধতি নির্ধারণ করে যে কোন স্প্রেডশীট ডেটা মৌলিক ফিল্টার বা ফিল্টার ভিউতে দেখানো বা লুকানো হবে। প্রতিটি মানদণ্ড একটি নির্দিষ্ট কলামের মানগুলির উপর নির্ভর করে। আপনি একটি মানচিত্র হিসাবে ফিল্টারের মানদণ্ড সরবরাহ করেন যেখানে কীগুলি কলামের সূচক এবং মানগুলি হল মানদণ্ড।

একটি বুলিয়ান condition ব্যবহার করে নির্দিষ্ট মানদণ্ডের জন্য, মান দেখানোর জন্য শর্তটি অবশ্যই True হতে হবে। শর্তটি hiddenValues ​​ওভাররাইড করে না। যদি একটি মান hiddenValues অধীনে তালিকাভুক্ত করা হয়, তাহলে একটি মানের জন্য সমস্ত মিল এখনও লুকানো থাকে।

নিম্নলিখিত কোড নমুনা একটি ফিল্টার মানদণ্ড মানচিত্র দেখায়:

{
  0: {
    'hiddenValues': ['Panel']
  },
  6: {
    'condition': {
      'type': 'DATE_BEFORE',
      'values': {
        'userEnteredValue': '4/30/2016'
      }
    }
  }
}

উদাহরণ বিক্রয় ডেটাতে প্রয়োগ করা হলে, এই মানদণ্ডটি শুধুমাত্র সেই সারিগুলি দেখায় যেখানে "আইটেম বিভাগ" "প্যানেল" নয় এবং যেখানে "জাহাজের তারিখ" 30 এপ্রিল, 2016 এর আগে।

সারণী 3. ফিল্টার মানদণ্ড ব্যবহার করে বিক্রয় ডেটা
ডি জি
1 আইটেম বিভাগ মডেল নম্বার খরচ পরিমাণ অঞ্চল বিক্রয়কর্মী জাহাজের তারিখ
2 চাকা W-24 $20.50 4 পশ্চিম বেথ 3/1/2016
3 দরজা D-01X $15.00 2 দক্ষিণ আমীর 3/15/2016
4 ফ্রেম FR-0B1 $34.00 8 পূর্ব হান্না 3/12/2016

নমুনা

নিচের কোডের নমুনাটি দেখায় কিভাবে একটি ফিল্টার ভিউ তৈরি করতে হয়, এটিকে ডুপ্লিকেট করতে হয় এবং তারপর উপরের উদাহরণ বিক্রয় ডেটা ব্যবহার করে সদৃশ সংস্করণ আপডেট করতে হয়।

পাইথন

sheets/snippets/sheets_filter_views.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def filter_views(spreadsheet_id):
  """
  Creates the batch_update the user has access to.
  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()
  # pylint: disable=maybe-no-member
  try:
    service = build("sheets", "v4", credentials=creds)

    my_range = {
        "sheetId": 0,
        "startRowIndex": 0,
        "startColumnIndex": 0,
    }
    addfilterviewrequest = {
        "addFilterView": {
            "filter": {
                "title": "Sample Filter",
                "range": my_range,
                "sortSpecs": [{
                    "dimensionIndex": 3,
                    "sortOrder": "DESCENDING",
                }],
                "criteria": {
                    0: {"hiddenValues": ["Panel"]},
                    6: {
                        "condition": {
                            "type": "DATE_BEFORE",
                            "values": {"userEnteredValue": "4/30/2016"},
                        }
                    },
                },
            }
        }
    }

    body = {"requests": [addfilterviewrequest]}
    addfilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )

    duplicatefilterviewrequest = {
        "duplicateFilterView": {
            "filterId": addfilterviewresponse["replies"][0]["addFilterView"][
                "filter"
            ]["filterViewId"]
        }
    }

    body = {"requests": [duplicatefilterviewrequest]}
    duplicatefilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )

    updatefilterviewrequest = {
        "updateFilterView": {
            "filter": {
                "filterViewId": duplicatefilterviewresponse["replies"][0][
                    "duplicateFilterView"
                ]["filter"]["filterViewId"],
                "title": "Updated Filter",
                "criteria": {
                    0: {},
                    3: {
                        "condition": {
                            "type": "NUMBER_GREATER",
                            "values": {"userEnteredValue": "5"},
                        }
                    },
                },
            },
            "fields": {"paths": ["criteria", "title"]},
        }
    }

    body = {"requests": [updatefilterviewrequest]}
    updatefilterviewresponse = (
        service.spreadsheets()
        .batchUpdate(spreadsheetId=spreadsheet_id, body=body)
        .execute()
    )
    print(str(updatefilterviewresponse))
  except HttpError as error:
    print(f"An error occurred: {error}")


if __name__ == "__main__":
  # Pass: spreadsheet_id
  filter_views("1CM29gwKIzeXsAppeNwrc8lbYaVMmUclprLuLYuHog4k")