আপনি কি গুগল শিটে ইউনিয়ন নির্বাচন করতে পারবেন?


10

আমি একটি ফর্মের সাথে লিঙ্কযুক্ত একটি গুগল পেয়েছি যা একই ফর্মটি ব্যবহার করে একই বিষয়ে তিনজন ভিন্ন ব্যক্তির কাছ থেকে জবাব সংগ্রহ করে এবং তিনবার সম্পাদনা করে। এটি এমন একটি শীট তৈরি করে যাতে তিনটি কলাম রয়েছে যেখানে তিন জন লোক অবস্থিত people

আমার এমন একটি ভিউ / ক্যোয়ারী তৈরি করতে হবে যা এই তিনটি কলাম নেয় এবং একে অপরের পাশে নয়, একে অপরের নীচে রাখে to একটি ডাটাবেসে আমি নীচের ক্যোয়ারির মতো কিছু করতাম, আমি আমার 'শীট' টিবিএলমেন কল করেছিলাম এবং প্রাসঙ্গিক চারটি কলামের বিবরণ দিয়েছি (আমারও বিষয় আইডি প্রয়োজন)।

tblMain:

ID        RALocation        RBLocation        RCLocation

প্রশ্ন:

Select ID, RALocation as Location, 'RA' as Role from tblMain
Union
Select ID, RBLocation as Location, 'RB' as Role from tblMain
Union
Select ID, RCLocation as Location, 'RC' as Role from tblMain

গুগল পত্রকগুলিতে এটি করার কোনও উপায় আছে কি কেউ জানেন? আমি একাধিক শীট তৈরি করা এবং তারপরে এগুলি একত্রিত করতে কিছু মনে করি না তবে কীভাবে এটি করা যায় সে সম্পর্কে আমি কিছুটা আটকে রয়েছি।


সারি সংখ্যা স্থির করা আছে বা সময়ের সাথে সাথে এটি পরিবর্তন হবে?
রুবন

উত্তর:


3

ফাঁকা ঘর রাখা উচিত কিনা তার উপর নির্ভর করে আমি দুটি সংস্করণ অফার করি। মূল ধারণাটি একই:

  1. আপনার টেবিলের মধ্যে নেই এমন একটি চরিত্র চয়ন করুন (উদাহরণস্বরূপ, একটি বিদেশী ইউনিকোড অক্ষর যার মাধ্যমে অ্যাক্সেসযোগ্য CHAR)।
  2. এটি JOINতিনটি কলামের প্রতিটি জন্য কমান্ড ব্যবহার করুন।
  3. এর মধ্যে চরিত্রটি যুক্ত করে ফলাফলগুলিকে সংযুক্ত করুন।
  4. SPLIT একই অক্ষর দ্বারা সংক্ষিপ্ত স্ট্রিং।
  5. TRANSPOSE ফলাফল.

উদাহরণ স্বরূপ:

=TRANSPOSE( SPLIT( JOIN(CHAR(57344),A1:A) &CHAR(57344)& JOIN(CHAR(57344),B1:B) &CHAR(57344)& JOIN(CHAR(57344),C1:C), CHAR(57344) ) )

যেখানে যোগদান / বিভাজনের জন্য, আমি চরিত্রটি বেছে নিয়েছি CHAR(57344), যা ব্যক্তিগত ব্যবহারের জন্য মনোনীত হয়েছে এবং তাই কোনও বৈধ ইনপুটটিতে উপস্থিত হওয়া উচিত নয়।

উপরের সূত্রটি ফাঁকা এন্ট্রিগুলি সরিয়ে দেয় , কারণ এটি যা SPLITকরে। আপনার ডেটা ফাঁকা না থাকলে এটি সুবিধাজনক হতে পারে: যেখানে ডেটার শেষ সারিটি রয়েছে তা ট্র্যাকিংয়ের ঝামেলা বাঁচায়। তবে অন্যান্য সময়, ফাঁকা স্থান সংরক্ষণ করা উচিত।

ফাঁকা রাখার জন্য, আমি জ্যাকব জ্যান তুইনস্ট্রার জবাবটি অনুসরণ করি ব্যতীত আমি জায়গার পরিবর্তে অন্য একটি ব্যক্তিগত ব্যবহার ইউনিকোড ব্যবহার করেছি (কে জানে, সম্ভবত আপনার কিছু ঘর আছে যা কেবল একটি জায়গা রয়েছে এবং আপনি সেগুলি রাখতে চান)। এই দুটি অতিরিক্ত পদক্ষেপ থাকে: আগের মতই সবকিছু যোগদানের পরে, আমি ব্যবহার SUBSTITUTEপ্রতিস্থাপন CHAR(57344)দ্বারা CHAR(57344)&CHAR(57345), তারপর আগের মত বিভক্ত, এবং প্রতিস্থাপন CHAR(57345)খালি স্ট্রিং দ্বারা।

=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(...joins... , CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "")))

সম্পূর্ণ ফলাফলটি দেখতে দেখতে (নোট করুন যে এখন আমি নির্দিষ্ট করেছি যে ডেটার শেষ সারিটি রয়েছে):

=TRANSPOSE( ARRAYFORMULA(SUBSTITUTE( SPLIT( SUBSTITUTE(JOIN(CHAR(57344),A1:A9) &CHAR(57344)& JOIN(CHAR(57344),B1:B9) &CHAR(57344)& JOIN(CHAR(57344),C1:C9), CHAR(57344),CHAR(57344)&CHAR(57345)), CHAR(57344) ), CHAR(57345), "" )))

আরও একটি সতর্কতামূলক: গুগল পত্রকগুলিতে স্ট্রিং দৈর্ঘ্যের 50000 অক্ষর অতিক্রম করতে পারে না। যদি কাজ করার জন্য স্ট্রিং-ভিত্তিক পদ্ধতির জন্য আপনার ডেটাটি খুব বেশি হয় তবে একটি স্ক্রিপ্ট ব্যবহার করুন ( এটি শুরু করার জন্য এটি একটি ভাল জায়গা)।


এটি একটি ট্রিট কাজ করে এবং সঠিক ফলাফল পেতে আমি তাদের একত্রিত করতে পারি। কেবলমাত্র আমি এখন যা করার চেষ্টা করছি তা হল নুল মানগুলিকে সম্মান করা এবং সেগুলি টেনে আনা, এটি প্রমাণিত হয় যে আপনার ফিল্টারটির প্রয়োজন ছিল না, যদি এটি একটি নাল মান খুঁজে পায় তবে তা তাদের বের করে দেবে। কোনও ধারণা কীভাবে আমি এটিকে নুলকে সম্মান জানাব?
অ্যানিবি

1
আসলে, "অন্যান্য উত্তর" এই মুহুর্তে একটি আংশিক উত্তর। অন্যান্য বিকল্পের সাথে সম্পর্কিত, অনুপস্থিত অংশটি কীভাবে ইউনিয়ন-নির্বাচন পদ্ধতির পরিবর্তে এমবেডেড অ্যারেগুলি ব্যবহার করবেন সে সম্পর্কে।
রুবনে

2
ওয়ান্ডারফুল। আমাদের পাইলট শেষ হয়ে যাওয়ার জন্য আমাকে সম্ভবত স্ক্রিপ্টটি দেখতে হবে তবে আপাতত আমার যথেষ্ট কাজ হয়েছে। এখানকার লোকেরা সত্যই সহায়ক, আপনাকে সবাইকে ধন্যবাদ!
আনিবি


2

সংক্ষিপ্ত উত্তর

গুগল শিটগুলি একটি অত্যন্ত শক্তিশালী সরঞ্জাম যা ইউনিয়ন-নির্বাচনের মতো ফলাফল অর্জনের জন্য বেশ কয়েকটি বিকল্প রয়েছে।

বিকল্প

এম্বেড করা অ্যারে

স্প্লিট-ট্রান্সপোস-যোগ-চার উপায় ব্যবহারের বিকল্প হ'ল এমবেডেড অ্যারে ব্যবহার করা। এই পদ্ধতির একটি সুবিধা হ'ল এর জন্য স্ট্রিংগুলি তৈরি / ডিকনস্ট্রাক্ট করার দরকার নেই, সুতরাং এটি অক্ষরের সংখ্যার সীমা প্রাসঙ্গিক নয়।

এম্বেডেড অ্যারে

ফিল্টারিং

ফিলিটার () এর সাথে মিশ্রিত হিসাবে উপরেরটিগুলি ইউ কেশন-সেলেক্টের অনুরূপ আচরণের জন্য ফিল্টারিং প্রয়োজন for উদাহরণ

={Filter(A1:B2, B1:B2=2);Filter(D1:E2, E1:E2=6);Filter(G1:H2, H1:H2=12)}

এছাড়াও QUERY () এর সাথে সংমিশ্রণে ব্যবহার করা যেতে পারে তবে এর ফলাফলগুলিতে শিরোনামের লাইন রয়েছে। কীভাবে শিরোলেখগুলি থেকে মুক্তি পাবেন সে সম্পর্কে Google স্প্রেডশিট ক্যোয়ারির ফলস্বরূপ সারি থেকে মুক্তি পান দেখুন ।

মানগুলির একটি কলাম কীভাবে তৈরি করবেন

মানগুলির কলাম তৈরি করতে ট্রান্সপোস-স্প্লিট-রিপট ব্যবহার করুন।

={Transpose(Split(REPT("RA,",6),","))}

এছাড়াও QUERY () মানগুলির একটি কলাম তৈরি করতে ব্যবহৃত হতে পারে তবে শিরোনাম সারিটি সরিয়ে ফর্মুলাকে আরও জটিল করে তুলতে পারে। স্ট্রিং দৈর্ঘ্যের সীমাবদ্ধতার কারণে যদি সমস্যা হয় তবেই এটি ব্যবহার করুন।

এম্বেডেড অ্যারে এবং ট্রান্সপোস-স্প্লিট-রিপেট ব্যবহার করে সমাধান

ধরে নিন যে tblMain পরিসীমাটি A1: D7, যেখানে A1: D1 হল সারণী শিরোনাম এবং ডেটা A2: D7 এ রয়েছে।

={{"ID";A2:A7;A2:A7;A2:A7},
{"Location";B2:B7;C2:C7;D2:D7},{"Role";
Transpose(Split(REPT("RA,",6),","));
Transpose(Split(REPT("RB,",6),","));
Transpose(Split(REPT("RC,",6),","))}}

তথ্যসূত্র

গুগল স্প্রেডশিট অ্যারে যুক্ত করা হচ্ছে - স্ট্যাকওভারফ্লো


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

এর জন্য আপনাকে ধন্যবাদ, আমি বর্তমানে শেষ সমাধানটি খুঁজছি, আমি মনে করি এটি আমাদের পাইলটটির জন্য খুব সুন্দরভাবে করবে!
এএনবি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.