আমি কীভাবে Google পত্রকে দশমিক-সারিবদ্ধ করি


13

গুগল শিটগুলিতে, আমি ভগ্নাংশের অংশে পিছনে জিরো যুক্ত না করে সংখ্যা দশমিক-সারিবদ্ধ করতে চাই।

Instead of:  I want:
+------+     +------+
|  56.0|     |  56  |
|  27.0|     |  27  |
|  83.0|     |  83  |
|   2.4|     |   2.4|
|   1.2|     |   1.2|
| 120.0|     | 120  |
+------+     +------+

প্রথম কলামের ফর্ম্যাটটি সহজেই সম্পন্ন হয় (উদাহরণস্বরূপ, "0.0" ফর্ম্যাটটি ব্যবহার করে বা কেবল 123 বোতামের নীচে কাস্টম দশমিক পয়েন্ট সেট করে)।

এক্সেলের মধ্যে, আমি বিশ্বাস করি যে দ্বিতীয় কলামের ফর্ম্যাটটি "0.?" বিন্যাসটি ব্যবহার করে সম্পন্ন হয়েছে, তবে এই লেখার মতো এটি Google পত্রকগুলিতে কাজ করে না।

কার্যসংক্রান্ত

সাবস্টিটিউটের সাহায্যে চলার অক্ষরগুলি জোর করা সম্ভব:

= Substitute( Text( formula ; "0.0" ) ; ".0" ; "  ")
= Substitute( Text( formula ; "0.0" ) ; ".0" ; "__" )

দ্রষ্টব্য: দুটি প্রতিস্থাপিত শ্বেতস্পেসের অক্ষরগুলি ইউ + 0020 স্পেস নয় তবে ইউ + 2002 এন স্পেস । ( U + 00A0 NO-BREAK স্পেসও কাজ করে না))

এই workaround এর কিছু অনাকাঙ্ক্ষিত পার্শ্ব প্রতিক্রিয়া হ'ল এটি

  • কেবল প্রদর্শন বিন্যাসটিই নয় কক্ষের মানটিও পরিবর্তন করে
  • ঘরের একটি মনসপ্যাসেড ফন্টের ব্যবহার প্রয়োজন
  • ইউনিকোডের কারণে হোয়াইটস্পেসের পিছনে হোয়াইট স্পেস হ'ল ফন্টের বিকল্পের কারণ হয়ে থাকে এবং সঠিকভাবে মুদ্রণ করে না
  • পেছনের আন্ডারলাইনগুলি পূর্ববর্তী হোয়াইটস্পেসের মতো পছন্দসই নয়
  • রক্ষণকারীদের বিভ্রান্ত করে কারণ এটি স্পষ্ট নয় যে কোনও এন স্পেস ব্যবহার করা হচ্ছে
  • (সম্ভবত) দশমিক চিহ্নিতকারীর পরিবর্তে পিরিয়ড বিভাজক (হাজার বিভাজক) হিসাবে পিরিয়ড ব্যবহার করে এমন লোকেলগুলিতে ব্যর্থ হয়

উত্তর:


5

নিম্নলিখিত কাস্টম নম্বর বিন্যাসের সাহায্যে, আপনি কার্নিং ব্যবহার করে এমন ফন্ট ব্যবহার করেও Google পত্রকগুলিতে দশমিক-সারিবদ্ধ করতে সক্ষম হবেন।

কাস্টম বিন্যাস

???.?????

স্ক্রিনশট

কাস্টম নম্বর বিন্যাস
এখানে চিত্র বর্ণনা লিখুন

ফলাফল
এখানে চিত্র বর্ণনা লিখুন

উদাহরণ

আমি এই সমাধানটি একটি উদাহরণ ফাইলটিতে যুক্ত করেছি: দশমিক-সংযুক্ত নম্বর


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

4

দশমিক-সারিবদ্ধ সংখ্যাগুলি প্রদর্শন করতে, আপনার লাইভকে কিছুটা সহজ করার জন্য আমি কিছু কোড লিখেছিলাম।

প্রথম কোড

কেবলমাত্র একটি ব্যাপ্তিতে ব্যবহৃত হতে পারে, কারণ এটি পরিসরের সর্বোচ্চ দশমিক স্থান অনুসারে গতিশীলভাবে সংখ্যার উপস্থিতি পরিবর্তন করে। এটি আপনাকে CHAR (160) এর মতো চলন্ত চরিত্রটি চয়ন করতে দেয়:

function RANGETRAIL(range,chr){
  chr = chr || '0'; 
  var aValues = new Array(), aDecimals = new Array();

  var max=0;
  for(i in range) {
    if(range[i] != "") {
      var string = range[i].toString();
      aValues.push([string]);
      var aSplit = string.split("."); 

      if(aSplit.length > 1) {
        aDecimals.push([aSplit[1].length]);
        if(aSplit[1].length > max) {
          max = parseInt(aSplit[1].length);        
        } 
      } else {
        aDecimals.push(["-1"]);
      }
    }
  } 

  for(k in aDecimals) {
    if(parseInt(aDecimals[k]) != parseInt(max)) {
      for(var l=parseInt(aDecimals[k]); l<parseInt(max); l++) {        
        aValues[k][0] += chr;
      }
    }
  }     
  return aValues;
}

দ্বিতীয় কোড

কোষের জন্য ব্যবহার করা বোঝানো হয়। এখানে আপনাকে পিছনের দৈর্ঘ্য নির্ধারণ করতে হবে:

function CELLTRAIL(cell,len,chr){
  // Brad Christie, http://stackoverflow.com/a/5024108/1536038
  chr = chr || '0'; 
  cell = cell.toString();

  if (!len) return cell;

  var p = cell.indexOf('.');
  p = (p!==-1?(cell.length-p-1):-1);

  for (var m = p; m < len; m++) {
    cell += chr;
  }
  return cell;
}

তৃতীয় কোড

একটি "বাদে সমস্ত অ-সংখ্যাসূচক থেকে স্ট্র্যাপটি স্ট্র্যাপ করবে।" এবং ",":

function RTRIM(cell) {   
  return Number(cell.replace(/[^0-9$.,]/g, ''));
}

উদাহরণ ফাইল

দশমিক সংযুক্ত নম্বর এখানে চিত্র বর্ণনা লিখুন


থটস

এই উত্তরটি আপনার প্রশ্নে আপনি উল্লিখিত উদ্বেগগুলি সরাবেন না, তবে সেগুলি প্রদর্শনে এটি কিছু অটোমেশন (গতিশীলভাবে) দেবে !! শুভকামনা।


আমি উল্লেখ করতে চাই যে আপনি যদি কোনও নির্দিষ্ট প্রস্থের ফন্ট ব্যবহার না করেন তবে এটি অদ্ভুত প্রান্তিককরণের সমস্যা হতে পারে।
মির

@ আমির আপনার মন্তব্যের জন্য ধন্যবাদ মীর। আমি যে উত্তরটি দিয়েছি তা পছন্দ করেছেন? ইন চিন্তা শিরোনাম আমি ব্যাখ্যা করেছেন যে এটা দূরে উদ্বেগ ওপি দিলেন না গ্রহণ করা হবে।
জ্যাকব জানু টিনস্ট্রা

1
উত্তরটি সত্যই কার্যকর হয়েছিল যখন আমি বুঝতে পারি যে আমার একটি নির্দিষ্ট প্রস্থের ফন্ট ব্যবহার করা দরকার। আমি সত্যবাদী হব - আমি প্রশ্নটি মনোযোগ সহকারে পড়িনি ... আমি এটির দিকে একবার তাকিয়েছি তা নিশ্চিত করার জন্য যে এটি আমার ইস্যুতে অনুরূপ, তারপরে সরাসরি আপনার উত্তরে ঝাঁপিয়ে পড়ে। সুতরাং আমি খেয়াল করিনি যে ওপিতে ফন্টগুলি সম্পর্কে উদ্বেগ রয়েছে।
মির

1

আপনি ঘরের পরিসীমাতে পুনরাবৃত্তি করতে অ্যাপস স্ক্রিপ্ট ব্যবহার করে শর্তসাপেক্ষে ফর্ম্যাটটি সেট করতে পারেন এবং ঘরের মানের উপর ভিত্তি করে পৃথক কাস্টম সংখ্যা বিন্যাস প্রয়োগ করতে পারেন (পূর্ণসংখ্যার সাথে অ-পূর্ণসংখ্যার)। কাস্টম নম্বর ফর্ম্যাটগুলি ব্যবহার করে, আপনি আন্ডারস্কোর অক্ষর ব্যবহার করে বিস্তৃত প্রস্থের সাদা স্পেসগুলি প্রদর্শন করতে পারেন, উদাহরণস্বরূপ, _.একটি সাদা রঙের স্পেস একটি পিরিয়ডের _0প্রস্থকে সন্নিবেশ করায় এবং একটি শূন্য অক্ষরের প্রশস্ততা সন্নিবেশ করায়। ঘটনাক্রমে, বেশিরভাগ ফন্টগুলি সমস্ত অঙ্কের অক্ষরের জন্য একই প্রস্থ ব্যবহার করে তাই 0 টি অক্ষর 1 এবং 2 এবং 3 ইত্যাদির সমান প্রস্থ হয় is

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

  Raw Numbers  Decimal Aligned
+------------+----------------+
|    1234.777|         1,234.8|
|        5454|         5,454  |
|           7|             7  |
|         0.5|             0.5|
+------------+----------------+

লিপি

function decimalAlign() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");
  var range = sheet.getRange("B2:B5");
  var numRows = range.getNumRows();
  var numCols = range.getNumColumns();
  for (var i = 1; i <= numRows; i++) {
    for (var j = 1; j <= numCols; j++) {
      var currentCell = range.getCell(i,j);
      var currentValue = currentCell.getValue();
      if (Math.round(currentValue) == currentValue) {
        currentCell.setNumberFormat("#,##0_._0");
      } else {
        currentCell.setNumberFormat("#,##0.0");
      }
    }
  }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.