Bước 1: Tạo 1 sheet mới tại đây:spreadsheet.new

Bước 2: Tạo App Script trên sheet đang sử dụng

Bước 3: Dán đoạn code bên dưới vào và lưu lại

/**
 * App Script Google Sheet
 * Chuyển số thành chữ tiền tệ Việt Nam Đồng.
 * Sản phẩm của CỌP - Thành viên WPVNTEAM
 * Vui lòng ghi rõ nguồn nếu sao chép lại code
 * 
 * @param {number} input The value to convert.
 * @return The number in VNĐ
 */
function VND(input) {
  const output = [];
  const ty = Math.floor(input / 1000000000);
  if (input >= 1000000000) {
    output.push(`${ty} tỷ`);
  } else {
    const ty = 0;
  }
  const trieu = Math.floor(input - (ty*1000000000));
  const httrieu = Math.floor(trieu / 1000000);
  if (trieu >= 1000000) {
    output.push(`${httrieu} triệu`);
  }
  const nghin = ((ty*1000000000) + (httrieu*1000000));
  const ssnghin = Math.floor(input - nghin);
  const htnghin = Math.floor(ssnghin / 1000);
  if (ssnghin >= 1000) {
    output.push(`${htnghin} ngàn`);
  }
  const dong = ((ty*1000000000) + (httrieu*1000000) + (htnghin*1000));
  const htdong = Math.floor(input - dong);
  if (htdong > 0) {
    output.push(`${htdong} đồng`);
  }
  return [...output, ''] //Before Price VNĐ
    .join(' ')
    .split(/\s/)
    .filter((e) => e)
    .map((e) => e.substr(0, 1).toUpperCase() + e.substr(1))
    .join(' ');
}

//Điều kiện: số tiền phải lớn hơn 1 triệu
function BDS(input) {
  const output = [];
    const ty = input / 1000000000;
    if (input >= 1000000000) {
      output.push(`${ty.toLocaleString()} tỷ`);
    } else {
    const ty = 0;
    const trieu = Math.floor(input - (ty*1000000000));
    const httrieu = Math.floor(trieu / 1000000);
    if (trieu < 1000000000 && trieu > 1000000) {
      output.push(`${httrieu.toLocaleString()} triệu`);
    }
  }
  return [...output, ''] //Before Price VNĐ
    .join(' ')
    .split(/\s/)
    .filter((e) => e)
    .map((e) => e.substr(0, 1).toUpperCase() + e.substr(1))
    .join(' ');
}

Bước 4: Để sử dụng full text dùng hàm

=VND($bien)

Sử dụng cho sản phẩm là Bất Động Sản hoặc TMĐT dùng hàm

=BDS($bien)

image

Vui lòng ghi rõ nguồn WPVNTEAM khi sao chép lại thông tin này.
Chúc các bạn thành công:kissing_heart:

Update phiên bản 2.0

 

 

/**
 * App Script Google Sheet v2
 * Chuyển số thành chữ tiền tệ Việt Nam Đồng.
 * Sản phẩm của TIẾN CỌP - Thành viên WPVNTEAM
 * Vui lòng ghi rõ nguồn nếu sao chép lại code
 * 
 * @param {number} input The value to convert.
 * @return The number in VND
 */

function VND(input) {
  const output = [];
  const ty = Math.floor(input / 1000000000);
  if (input >= 1000000000) {
    output.push(`${phantram(ty)} tỷ`);
  } else {
    const ty = 0;
  }
  const trieu = Math.floor(input - (ty*1000000000));
  const httrieu = Math.floor(trieu / 1000000);
  if (trieu >= 1000000) {
    output.push(`${phantram(httrieu)} triệu`);
  }
  const nghin = ((ty*1000000000) + (httrieu*1000000));
  const ssnghin = Math.floor(input - nghin);
  const htnghin = Math.floor(ssnghin / 1000);
  if (ssnghin >= 1000) {
    output.push(`${phantram(htnghin)} nghìn`);
  }
  const dong = ((ty*1000000000) + (httrieu*1000000) + (htnghin*1000));
  const htdong = Math.floor(input - dong);
  if (htdong > 0) {
    output.push(`${phantram(htdong)}`);
  }

  const tens = input % 100;
  if (tens > 0) {
    if (input > 100) output.push('lẻ');
    output.push(`${phantram(tens)}`);
  }

  return [...output, 'đồng'] //Before Price VNĐ
    .join(' ')
    .split(/\s/)
    .filter((e) => e)
    .map((e) => e.substr(0, 1).toLowerCase() + e.substr(1)) //Chữ In Hoa toUpperCase()
    .join(' ');
}

function mot(number) {
  const motso = ['', 'một', 'hai', 'ba', 'bốn', 'năm', 'sáu', 'bảy', 'tám', 'chín'];
  return motso[number] || '';
}

function muoi(number) {
  const teens = ['mười','mười một','mười hai','mười ba','mười bốn','mười lăm','mười sáu','mười bảy','mười tám','mười chín'];
  return teens[number] || '';
}

function haimuoi(number) {
  const tens = ['', '', 'hai mươi', 'ba mươi', 'bốn mươi', 'năm mươi', 'sáu mươi', 'bảy mươi', 'tám mươi', 'chín mươi'];
  return tens[number] || '';
}
function mottram(number) {
  const mts = ['không trăm', 'một trăm', 'hai trăm', 'ba trăm', 'bốn trăm', 'năm trăm', 'sáu trăm', 'bảy trăm', 'tám trăm', 'chín trăm'];
  return mts[number] || '';
}

function phantram(num) {
  if (num > 0 && num < 10) {
    return mot(num);
  }
  if (num >= 10 && num < 20) {
    return muoi(num % 10);
  }
  if (num >= 20 && num < 100) {
    return `${haimuoi(Math.floor(num / 10))} ${mot(num % 10)}`;
  }
  if (num >= 100 && num < 1000) {
    const atram = Math.floor(num / 100);
    const amuoi = (num - (atram * 100)) / 10;
    const aso = num % 10;
    return `${mottram(atram)} ${haimuoi(amuoi)} ${mot(aso)}`;
  }
  return '';
}

function VNDN(input) {
  const output = [];
  const ty = Math.floor(input / 1000000000);
  if (input >= 1000000000) {
    output.push(`${ty} tỷ`);
  } else {
    const ty = 0;
  }
  const trieu = Math.floor(input - (ty*1000000000));
  const httrieu = Math.floor(trieu / 1000000);
  if (trieu >= 1000000) {
    output.push(`${httrieu} triệu`);
  }
  const nghin = ((ty*1000000000) + (httrieu*1000000));
  const ssnghin = Math.floor(input - nghin);
  const htnghin = Math.floor(ssnghin / 1000);
  if (ssnghin >= 1000) {
    output.push(`${htnghin} nghìn`);
  }
  const dong = ((ty*1000000000) + (httrieu*1000000) + (htnghin*1000));
  const htdong = Math.floor(input - dong);
  if (htdong > 0) {
    output.push(`${htdong}`);
  }
  return [...output, 'đồng'] //Before Price VNĐ
    .join(' ')
    .split(/\s/)
    .filter((e) => e)
    .map((e) => e.substr(0, 1).toLowerCase() + e.substr(1)) //Chữ In Hoa toUpperCase()
    .join(' ');
}

Để sử dụng chữ dùng hàm

=VND($bien)

Để sử dụng số + chữ dùng hàm

=VNDN($bien)

Cám ơn các bạn đã đóng góp ý kiến để hoàn thiện hơn:kissing_heart:

Nguồn: //wordpressvn.com/t/huong-dan-chuyen-doi-so-thanh-chu-trong-google-sheet-tu-dong-cuc-ky-nhanh-chong

5 1 đánh giá
BẢNG XẾP HẠNG
Theo dõi
Thông báo của
guest
0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận