เพิ่มห้องขังค่าของคอลัมน์ต้องมีเหยื่อที่เป็นเซลล์ดูจากบันทึกของเซลล์

0

คำถาม

ฉันกำลังเล่นกับ Apps สคริปต์เพื่อพยายามเพิ่มมูลค่าของห้องขังอยู่ในเจาะจงคอลัมน์(ซี 4:C14)ในของแผ่นงานตารางคำนวณต้องเข้ามือถือ C15 ตอนที่มีข้อความที่เขียนว่า'จ่าย'

ฉันอ่านผ่า เอกสารคู่มือ ของชั้นเรียนช่วงและสามารถหาค่าของบันทึกเช่นเดียวค่าของเซลล์ที่อยู่ในมือถือช่วง(ซี 4:C14)แต่ฉันไม่สามารถตั้งค่าศูนย์ดูจากเนื้อหาของแทรกข้อความของกูเกิ้ลผ้าปูที่นอน

นี่คือรหัสผมทำงานออกดังนั้นไกลเช่นเดียวที่จับภาพหน้าจอของแผ่นงานของฉัน. enter image description here

function getPaid () {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("C4:C14");
  var rangeval = range.getValues();

  Logger.log(rangeval);
  var comments = range.getNotes();

  for (var i = 0; i > range.length; i++) {
    if ( range.getNotes()[i] === "paid" ) {
      sheet.getRange('C15').setValue(0 + rangeval[i]);
      
    }
  Logger.log(range.getNotes[i]);
  }
  
  Logger.log(comments);

}
google-apps-script google-sheets
2021-11-24 06:23:43
2

คำตอบที่ดีที่สุด

2

นี่คุณไปแล้วผมก็แนะนำให้เห็นว่าช่วงตึกของคุณกำลังถูกประหารหรือไม่ใช่สำหรับตัวอย่างของคุณสำหรับวงไม่ได้ถูกเรียกจากข้อผิดงตัวแปร ยังจงจำไว้เสมอว่าผ้าปูที่นอนของกูเกิ้ลเสมองกลับ 2d อาเรย์.

function getPaid () {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
    
      var range = sheet.getRange("C4:C14");
      var rangeval = range.getValues();
      var comments = range.getNotes();
      var sum = 0;
      for (var i = 0; i < rangeval.length; i++) {
       
        if ( comments[i][0] === "paid" ) {
    
          sum = sum+rangeval[i][0];
        }
      }
      sheet.getRange('C15').setValue(sum)
    
    }
2021-11-24 12:22:28
0

ดีกว่าสำหรับการศึกษาจุดประสงค์ที่นี่คือ'ใช้งาน'ทางออก:

function myFunction() {
  var sh = SpreadsheetApp.getActiveSheet();

  var range = sh.getRange('c4:c14'); 
  var data  = range.getValues().flat(); // get all data in one step
  var notes = range.getNotes().flat();  // get all notes in one step

  var paid = data.filter((_,i) => notes[i] === 'paid'); // get paid values
  var sum  = paid.reduce((a,b) => a+b);                 // sum of the array

  sh.getRange('c15').setValue(sum); // set the sum into the cell C15
}
2021-11-24 07:20:46

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่