গুগল শিটের একটি কলামে সর্বশেষ খালি খালি ঘরটি পান


139

আমি নিম্নলিখিত ফাংশনটি ব্যবহার করি

=DAYS360(A2, A35)

আমার কলামে দুটি তারিখের মধ্যে পার্থক্য গণনা করতে। তবে কলামটি সর্বদা প্রসারিত হচ্ছে এবং আমার স্প্রেডশিটটি আপডেট করার সাথে সাথে আমাকে নিজেই 'A35' পরিবর্তন করতে হবে।

এই কলামে সর্বশেষ খালি শেলটি খুঁজে বের করার এবং তারপরে গতিশীলভাবে উপরের ফাংশনটিতে সেই প্যারামিটারটি সেট করার কোনও উপায় আছে (গুগল শীটগুলিতে)?


উত্তর:


172

আরও সুস্পষ্ট উপায় থাকতে পারে তবে আমি এইভাবেই এগিয়ে এসেছি:

একটি কলামে শেষ জনবহুল ঘরটি সন্ধান করার ফাংশনটি হ'ল:

=INDEX( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ; ROWS( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ) )

সুতরাং আপনি যদি এটিটিকে আপনার বর্তমান ফাংশনটির সাথে একত্রিত করেন তবে এটি দেখতে এরকম দেখাবে:

=DAYS360(A2,INDEX( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ; ROWS( FILTER( A:A ; NOT( ISBLANK( A:A ) ) ) ) ))

1
আমি যতক্ষণ না এটি আকর্ষণীয় (যা এটি করে) এর মতো কাজ করে ততক্ষণ আমি এই ক্ষেত্রে স্পষ্টতই বাগ্মিতা সম্পর্কে বিরক্ত নই - ধন্যবাদ প্রচুর স্যাম!
মাইকেলস

4
আমি ISBLANK ব্যবহার না করে খালি স্ট্রিংয়ের সাথে তুলনা করে শেষ করেছি, যা কিছু খালি দেখায় এমন সেলগুলি ব্যবহার করে (যেমন ফাঁকা-ফেরতের সূত্রগুলি = "" নন-ফাঁকা হিসাবে বিবেচনা করে Thus সুতরাং: '= সূচক (ফিল্টার (এ: এ, এ: এ) <> ""), সারি (ফিল্টার (A: A, A: A <> ""))) '
সার্কেলপআই 314

সূত্রগুলির কারণে আমার আইএসব্ল্যাঙ্কে সমস্যাও ছিল। তবে = আইএনডিএক্স (ফিল্টার (এফ 3: এফ; এফ 3: এফ <> "")) ব্যবহার করে; ROWS (ফিল্টার (F3: F; F3: F <> "")) ফলাফল সূত্র পার্স ত্রুটি। কোন ধারণা কি ভুল?
ক্লোর

প্রশ্ন। যদি A: A এর পরিবর্তে একটি আমদানি () থাকে, তবে 4 বার একই আমদানি না করে কীভাবে এটি আবার লেখা যায়?
রুবি

4
ডাগ ব্র্যাডশোর সামান্য সরল উত্তর যা ফাঁকা অংশগুলিও পরিচালনা করে: =INDEX(FILTER(A1:A,NOT(ISBLANK(A1:A))),COUNTA(A1:A))(প্রথম সারির A1 পরিবর্তন করতে পারে) সম্পূর্ণ বিবরণ এখানে: stackoverflow.com/a/27623407/539149
জ্যাক মরিস

82

গত খালি নয় এমন সেল আপনি ব্যবহার করতে পারেন জন্য INDEXএবং MATCHএই মত ফাংশন:

=DAYS360(A2; INDEX(A:A; MATCH(99^99;A:A; 1)))

আমি মনে করি এটি কিছুটা দ্রুত এবং সহজ।


1
এটি সহজ এবং আমি এটি পরীক্ষা করেছি। দুর্দান্ত কাজ করে।
Ciaran

24
আপনার পদ্ধতিটি কেবলমাত্র সর্বশেষ কক্ষটি সন্ধান করতে পারে যখন মানটি একটি সংখ্যা হয়, আমার পদ্ধতিটি শেষ সারিটি টাইপ স্ট্রিংয়ের মতো খুঁজে পাবে। মূল প্রশ্নটি তারিখগুলি সম্পর্কে ছিল, সুতরাং এটি কার্যকর হবে, তবে নিবন্ধটি এখনও মনোযোগ পেয়েছে বলে এটি পার্থক্যটি লক্ষ্য করার মতো। এটা সব আপনার প্রয়োজনের উপর নির্ভর করে। আপনার যদি কেবল একটি নম্বর প্রয়োজন তবে আমি এইভাবে প্রস্তাব দিই।
স্যাম প্লাস প্লাস

1
এটি ধরে নিয়েছে কলামটি সাজানো হয়েছে
আন্দ্রেজ অ্যাডামেঙ্কো

এছাড়াও হিসাবে করা যেতে পারে=DAYS360(A2;VLOOKUP(99^99;A:A;1))
vstepaniuk

55

যদি এ 2: এটিতে স্বচ্ছভাবে তারিখ থাকে তবে আইএনডেক্স (এ 2: এ, COUNT (এ 2: এ)) শেষ তারিখটি ফেরত দেবে। চূড়ান্ত সূত্রটি হ'ল

=DAYS360(A2,INDEX(A2:A,COUNT(A2:A)))

9
ব্যক্তিগতভাবে আমি মনে করি এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। সংক্ষিপ্ত এবং সহজ।
সোয়াম্পথিংটম

4
এটি সবচেয়ে সুনির্দিষ্ট উত্তর। যদিও উপরে পুলের উত্তর এই ক্ষেত্রে কাজ করে, আমি প্রকৃত ডেটা সহ প্রকৃত সর্বশেষ ঘরটি সন্ধান করতে চেয়েছিলাম এবং ডেটা ক্রমযুক্ত কিনা তা এটি পেয়েছে।
চক ক্লাঞ্চ 3'13 এ

4
এটি নিখুঁত। দ্বিতীয় গতি যে এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
শিরি

37

আমার পছন্দ:

=INDEX(A2:A,COUNTA(A2:A),1)

সুতরাং, অপের প্রয়োজনের জন্য:

=DAYS360(A2,INDEX(A2:A,COUNTA(A2:A),1))

... যদিও উপরের "ম্যাক্স" পল পোস্ট করেছে যখন শেষ তারিখটি সর্বদা সর্বশেষতম হয় তখন কেসটি ভাল দেখাচ্ছে।
এরিক স্মলিং

1
তার অর্থ হ'ল +1, 1
নিউব্রিস্ট

1
এটি প্রশ্নের উত্তর দেয় না - এটি সর্বশেষ মানটি তুলে ধরেছে, তবে সর্বশেষটি খালি নয়।
NateS

17

যদি কলামটি আমার ক্ষেত্রে যেমন স্বচ্ছভাবে যুক্ত তারিখগুলি দ্বারা প্রসারিত হয় - আমি শেষ তারিখ পাওয়ার জন্য কেবলমাত্র MAX ফাংশনটি ব্যবহার করেছি।

চূড়ান্ত সূত্রটি হ'ল:

=DAYS360(A2; MAX(A2:A)) 

3
জিনিয়াস! সহজ এবং কার্যকর।
আসু

14

যদিও প্রশ্নের ইতিমধ্যে উত্তর দেওয়া হয়েছে, এটি করার একটি স্পষ্ট উপায় আছে।

Use just the column name to denote last non-empty row of that column.

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

যদি আপনার ডেটাটি থাকে A1:A100এবং আপনি কলাম এ-তে আরও কিছু ডেটা যুক্ত করতে সক্ষম হতে চান, বলুন এটি হতে পারে A1:A105বা তার A1:A1234পরেও হতে পারে , আপনি এই ব্যাপ্তিটি ব্যবহার করতে পারেন:

A1:A

নমুনা

সুতরাং একটি পরিসরে সর্বশেষ খালি খালি মান পেতে, আমরা 2 টি ফাংশন ব্যবহার করব:

  • গণনা A
  • এর INDEX

উত্তরটি হ'ল =INDEX(B3:B,COUNTA(B3:B))

এখানে ব্যাখ্যা:

COUNTA(range) একটি ব্যাপ্তিতে মানগুলির সংখ্যা ফেরত দেয়, আমরা সারিগুলির গণনা পেতে এটি ব্যবহার করতে পারি।

INDEX(range, row, col)অবস্থানে একটি সীমার মধ্যে মান rowএবং col( col=1নির্দিষ্ট করা নেই যদি থাকে)

উদাহরণ:

INDEX(A1:C5,1,1) = A1
INDEX(A1:C5,1) = A1 # implicitly states that col = 1
INDEX(A1:C5,1,2) = A2
INDEX(A1:C5,2,1) = B1
INDEX(A1:C5,2,2) = B2
INDEX(A1:C5,3,1) = C1
INDEX(A1:C5,3,2) = C2

উপরের ছবির জন্য, আমাদের পরিসীমা হবে B3:B। সুতরাং আমরা কত মান সীমার মধ্যে আছে গণনা করা হবে B3:Bদ্বারা COUNTA(B3:B)প্রথম। বাম দিকে, এটি উত্পাদন করবে 8যেহেতু এটি 8 টি মান রয়েছে যখন এটি 9ডানদিকে উত্পাদন করবে । আমরা আরও জানি যে সর্বশেষ মানটি ব্যাপ্তির 1 ম কলামে B3:Bতাই colপ্যারামিটারটি 1 INDEXহতে হবে এবং rowপ্যারামিটারটি হওয়া উচিত COUNTA(B3:B)

পিএস : দয়া করে @ ব্লাডিমায়ার্ডলাইভের উত্তরটি উত্সাহিত করুন যেহেতু তিনি প্রথম এটি লিখেছিলেন, আমি কেবল এখানে এটি ব্যাখ্যা করছি।


1
আমি এটি পছন্দ করি তবে এমন বিষয়গুলি দেখেছি যেখানে এটি কখনও কখনও সর্বশেষের পরিবর্তে পরবর্তী থেকে শেষ আইটেমটি দেয়।
এরিক স্মলিং

1
@ এরিকস্মলিং যা ঘটতে পারে কারণ আপনার সমস্ত সারিটির শেষে একটি অতিরিক্ত লাইনফিড রয়েছে এবং যখন আপনি এটি অনুলিপি করেন তখন এটি খালি খালি সেল হিসাবে বিবেচনা করা যেতে পারে। আপনার কাছে এই সমস্যাটি প্রকাশ করার কোনও নমুনা স্প্রেডশিট আছে?
রমজান পোলাট

বুদ্ধিমান সমাধান মত মনে হচ্ছে!
মেমলিক

এটি কাজ করে না। আপনি বিটিডব্লিউ থেকে উদ্ধৃতিটি কোথায় পেয়েছেন? আমি গুগল শীট ডকুমেন্টেশন থেকে ভেবেছি।
অতুল

1
@ রমজানপোল্ট: ওপি আমাকে কলামের শেষ ফাঁকা ঘরটি কলামের শেষ ফাঁকা ঘরটি সন্ধান করার জন্য (গুগল শিটগুলিতে) উপায় জিজ্ঞাসা করছে A1:A
অতুল

8

এখানে অন্য একটি:

=indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),""))))

চূড়ান্ত সমীকরণটি হ'ল:

=DAYS360(A2,indirect("A"&max(arrayformula(if(A:A<>"",row(A:A),"")))))

এখানে অন্যান্য সমীকরণগুলি কাজ করে তবে আমি এটি পছন্দ করি কারণ এটি সারি সংখ্যাটি সহজ করে তোলে যা আমার মনে হয় আমার আরও প্রায়শই করা দরকার। কেবল সারি নম্বরটি এটির মতো হবে:

=max(arrayformula(if(A:A<>"",row(A:A),"")))

আমি প্রথমে একটি স্প্রেডশিট সমস্যা সমাধানের জন্য এটি সন্ধান করার চেষ্টা করেছি, তবে দরকারী এমন কিছু খুঁজে পেলাম না যা সবেমাত্র শেষ প্রবেশের সারি নম্বর দিয়েছে, সুতরাং আশা করি এটি কারও পক্ষে সহায়ক।

এছাড়াও, এর অতিরিক্ত সুবিধা রয়েছে যে এটি যে কোনও ক্রমে যে কোনও ধরণের ডেটার জন্য কাজ করে, এবং আপনার সামগ্রীতে সারিগুলির মধ্যে ফাঁকা সারি থাকতে পারে এবং এটি সূত্রের সাথে কোষ গণনা করে না যা "" মূল্যায়ন করে। এটি বারবার মানগুলিও পরিচালনা করতে পারে। সর্বোপরি এটি এখানে সর্বাধিক ((জি: জি <> "") * সারি (জি: জি)) ব্যবহার করে এমন সমীকরণের সাথে খুব মিল, তবে আপনার পরে যদি সারি নম্বরটি বের করা কিছুটা সহজ করে তোলে ।

বিকল্পভাবে, আপনি যদি নিজের পাতায় কোনও স্ক্রিপ্ট রাখতে চান তবে আপনি যদি এটি অনেক কিছু করার পরিকল্পনা করেন তবে আপনি নিজের উপর সহজ করে তুলতে পারেন। এখানে সেই স্কিপট:

function lastRow(sheet,column) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  if (column == null) {
    if (sheet != null) {
       var sheet = ss.getSheetByName(sheet);
    } else {
      var sheet = ss.getActiveSheet();
    }
    return sheet.getLastRow();
  } else {
    var sheet = ss.getSheetByName(sheet);
    var lastRow = sheet.getLastRow();
    var array = sheet.getRange(column + 1 + ':' + column + lastRow).getValues();
    for (i=0;i<array.length;i++) {
      if (array[i] != '') {       
        var final = i + 1;
      }
    }
    if (final != null) {
      return final;
    } else {
      return 0;
    }
  }
}

আপনি বর্তমানে যে শীটটি সম্পাদনা করছেন তার একই পাতায় শেষ সারিটি চাইলে এখানে আপনি কেবলমাত্র টাইপ করতে পারেন:

=LASTROW()

বা যদি আপনি সেই শীট থেকে কোনও নির্দিষ্ট কলামের শেষ সারিটি চান বা অন্য শিটের একটি নির্দিষ্ট কলামের জন্য আপনি নিম্নলিখিতটি করতে পারেন:

=LASTROW("Sheet1","A")

এবং সাধারণভাবে একটি নির্দিষ্ট শীটের শেষ সারিটির জন্য:

=LASTROW("Sheet1")

তারপরে আসল ডেটা পেতে আপনি হয় পরোক্ষ ব্যবহার করতে পারেন:

=INDIRECT("A"&LASTROW())

অথবা আপনি উপরের স্ক্রিপ্টটি শেষ দুটি রিটার্ন লাইনে পরিবর্তন করতে পারেন (শেষ দুটি যেহেতু আপনাকে একটি আসল কলাম থেকে আসল মান পেতে শীট এবং কলাম উভয়ই রাখতে হবে), এবং নিম্নলিখিতটির সাথে ভেরিয়েবলটি প্রতিস্থাপন করতে পারেন:

return sheet.getRange(column + final).getValue();

এবং

return sheet.getRange(column + lastRow).getValue();

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

সম্ভবত ওভারকিল, তবে সব সম্ভব।


1
"অজানা ফাংশন লাস্ট্রো"
বেরিট লারসেন

প্রশ্নের শিরোনামটি উত্তর দেওয়ার জন্য +100 হওয়া উচিত: শেষ সারি, শেষ সারিতে মূল্য নয়
নরবার্ট ভ্যান নোবেলেন

6

শেষ মান পাওয়ার জন্য এই সূত্রটি সম্পর্কে কী:

=index(G:G;max((G:G<>"")*row(G:G)))

এবং এটি আপনার মূল কাজের জন্য একটি চূড়ান্ত সূত্র হবে:

=DAYS360(G10;index(G:G;max((G:G<>"")*row(G:G))))

মনে করুন যে আপনার প্রাথমিক তারিখটি জি 10 এ রয়েছে।


5

আমি অন্য পথে গেলাম। যেহেতু আমি জানি যে আমি একের পর এক সারিতে / কলামে কিছু যুক্ত করব, তাই আমি প্রথমে শেষ সারিটি ডেটাযুক্ত ক্ষেত্রগুলি গণনা করে খুঁজে বের করব। আমি এটি একটি কলাম দিয়ে দেখাব:

=COUNT(A5:A34)

সুতরাং, আসুন আমরা এটি 21 বলে জানিয়েছি A A5 4 টি সারি নিচে, সুতরাং আমার চতুর্থ সারির নীচে থেকে 21 তম অবস্থানটি পাওয়া দরকার। আমি এটি অনর্থক ব্যবহার করে এটি করতে পারি:

=INDIRECT("A"&COUNT(A5:A34)+4)

এটি ডেটা সহ সারিগুলির পরিমাণ সন্ধান করছে এবং আমি একটি সূচক সংশোধক হিসাবে ব্যবহার করছি এমন একটি নম্বর আমাকে ফিরিয়ে দিচ্ছে।


1
মনে রাখবেন যে খালি ঘর থাকতে পারে না। এছাড়াও, COUNTA এর আরও দৃশ্যের মাপসই করা উচিত
জেড Khulla

4

এক সারি জন্য:

=ARRAYFORMULA(INDIRECT("A"&MAX(IF(A:A<>"", ROW(A:A), ))))

একটি কলামের জন্য:

=ARRAYFORMULA(INDIRECT(ADDRESS(1, MAX(IF(1:1<>"", COLUMN(1:1), )), 4)))

1
দুর্দান্ত উত্তর। ধন্যবাদ.
নিক 21

2

এটি একটি সহজ সমাধানের মতো বলে মনে হচ্ছে যা আমি সর্বদা প্রসারণকারী কলামে সর্বশেষ মানটি পুনরুদ্ধার করতে পেয়েছি:

=INDEX(A:A,COUNTA(A:A),1)

2

এটি আমার পক্ষে কাজ করে। গুগল শীটে কলামের শেষ মানটি পান:

=index(A:A,max(row(A:A)*(A:A<>"")))

(এটি যদি থাকে তবে ফাঁকা সারিগুলি এড়িয়ে যায়)


1

কলাম A এ সর্বশেষ তারিখের মধ্যে পার্থক্য গণনা করুন কক্ষ A2-তে তারিখের সাথে।

=MAX(A2:A)-A2

1

এটি সর্বশেষ কক্ষের বিষয়বস্তু দেবে:

=indirect("A"&max(ARRAYFORMULA(row(a:a)*--(a:a<>""))))

এটি সর্বশেষ কক্ষের ঠিকানা দেবে:

="A"&max(ARRAYFORMULA(row(a:a)*--(a:a<>"")))

এটি সর্বশেষ কক্ষটির সারি দেবে:

=max(ARRAYFORMULA(row(a:a)*--(a:a<>"")))

হতে পারে আপনি কোনও স্ক্রিপ্ট পছন্দ করবেন। এই স্ক্রিপ্টটি অন্য কারো দ্বারা উপরে পোস্ট করা বিশালটির চেয়ে কিছুটা ছোট:

স্ক্রিপ্ট সম্পাদক এ যান এবং এই স্ক্রিপ্ট সংরক্ষণ করুন:

function getLastRow(range){
  while(range.length>0 && range[range.length-1][0]=='') range.pop();
  return range.length;
}

এটি একটি হয়ে গেছে আপনাকে কেবল একটি ঘরে এটি প্রবেশ করাতে হবে:

=getLastRow(A:A)

0

অপেশাদার যেভাবে এটি করেন তা হল "= কনস্যাকটেট (" এ ", COUNTUNIQUE (A1: A9999))", যেখানে A1 কলামের প্রথম ঘর এবং A9999 যে কলামের চেয়ে আমার যত বেশি প্রবেশিকা প্রত্যাশা রয়েছে তার চেয়ে বেশি দূরে রয়েছে। এই ফলশ্রুতি A # প্রয়োজনীয় হিসাবে INDIRECT ফাংশন ব্যবহার করা যেতে পারে।


দুঃখিত। এটি কেবল তখনই কাজ করে যদি কলামের সমস্ত এন্ট্রি অনন্য থাকে।
কনরাড লিন্ডেস

1
আমি স্ট্যাকওভারফ্লো, কনরাডে আপনার অবদানের প্রশংসা করি, আপনার উত্তরে কিছু সমস্যা রয়েছে। প্রথমত, তিনি উল্লেখ করেননি যে তারিখগুলি অনন্য ছিল, সুতরাং আপনার কাউন্টউনিক () পরিবর্তে গণনা () ব্যবহার করা উচিত। দ্বিতীয়ত, অপ্রত্যক্ষ () ব্যবহার করে এবং সংযুক্তি সূচকের বিদ্যমান কার্যকারিতাটির সদৃশ হয় (), আপনি অন্যান্য উত্তরগুলিতে দেখতে পারেন। তৃতীয়, A1: A9999 এর পরিবর্তে, কেন কেবল A1: A ব্যবহার করবেন না?
sondra.kinsey

0

গত nonempty সারি নম্বর (তাদের মধ্যে ঐ খালি যার ফলে) জন্য আমি কলাম অনুসন্ধান করার জন্য নিচের ব্যবহৃত A

=ArrayFormula(IFNA(match(2,1/(A:A<>""))))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.