第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Google 表格 - 將數(shù)值分配給彩色單元格,然后將 SUM 值一起放在另一列中

Google 表格 - 將數(shù)值分配給彩色單元格,然后將 SUM 值一起放在另一列中

炎炎設(shè)計(jì) 2023-02-24 16:26:28
我不確定這是否可以完成,但我希望嘗試為特定顏色分配一個(gè)數(shù)值,然后對(duì)這些值求和并將結(jié)果顯示在不同的列中。上圖是 Green + Green + Gray = 7 和 Green + Red + Green = 6 的理想輸出。我希望能夠?yàn)槿魏螁卧穹峙渚G色 3,灰色單元格 1 和紅色單元格0 然后將它們相加顯示在“每月總積分”列 I 中。
查看完整描述

1 回答

?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

解決方案:

您可以使用使用getBackground()的自定義公式來(lái)獲取單元格背景顏色的十六進(jìn)制值,并根據(jù)顏色和點(diǎn)之間的映射計(jì)算點(diǎn)的總數(shù):

function getPoints(row, column) {


  const ss = SpreadsheetApp.getActive();

  const sh = ss.getActiveSheet();  

  const start_cell = sh.getDataRange().getCell(row, column);    

  const cells_range = start_cell.offset(0, 0, 1, 3);

  const cells_bg = cells_range.getBackgrounds().flat();    

  const colors_src_range = sh.getRange('C1:E1');

  const colors_source = colors_src_range.getBackgrounds().flat();

  const colors_pts = colors_src_range.getValues().flat().map(cv=>cv.replace( /^\D+/g, ''));


  var total_pts = 0;  

  cells_bg.forEach(cbg=>{

  colors_source.forEach( (col,index)=>{

  total_pts += cbg == col ? parseInt(colors_pts[index]) : 0

  });})

  

  return total_pts;

}

然后您可以將它用作工作表中的公式:getPoints(row, column)為此您需要指定具有顏色的最左側(cè)單元格的坐標(biāo)(在您的示例中為 C 列),它將返回顏色行的總點(diǎn)數(shù)。

更新:

  • 腳本會(huì)自動(dòng)從范圍中獲取十六進(jìn)制值C1:E1,因此您無(wú)需手動(dòng)傳遞這些值。

  • 每種顏色的點(diǎn)數(shù)也由腳本使用正則表達(dá)式自動(dòng)拾取。

  • 代碼更加優(yōu)化,因?yàn)樗褂?a >getBackgrounds()而不是getBackground()。


例子:

例如,這個(gè)公式:

=getPoints(row(C6),column(C6))

將導(dǎo)致:

http://img1.sycdn.imooc.com//63f874eb000196b806540186.jpg

查看完整回答
反對(duì) 回復(fù) 2023-02-24
  • 1 回答
  • 0 關(guān)注
  • 90 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)