انتقل إلى المحتوى الرئيسي

كيفية حساب أو جمع الخلايا على أساس لون الخلية في ورقة جوجل؟

عد قيم الخلية أو جمعها بناءً على لون خلفية خلية معين للحصول على النتيجة كما هو موضح في لقطة الشاشة التالية. في هذه المقالة سأتحدث عن كيفية حل هذه المهمة في ورقة جوجل ومايكروسوفت إكسل.

عد قيم الخلايا بناءً على لون الخلية مع البرنامج النصي في ورقة Google

مجموع قيم الخلايا على أساس لون الخلية مع البرنامج النصي في ورقة Google

عد أو مجموع قيم الخلايا على لون الخلية باستخدام كوتولس ل إكسيل في مايكروسوفت إكسل


عد قيم الخلايا بناءً على لون الخلية مع البرنامج النصي في ورقة Google

يمكن أن يساعدك البرنامج النصي التالي في حساب قيم الخلية بناءً على لون خلية معين ، يرجى القيام بذلك على النحو التالي:

1. انقر الأدوات > محرر النص، انظر لقطة الشاشة:

2. في نافذة المشروع المفتوحة ، انقر فوق قم بتقديم > جديد > ملف البرنامج النصي لفتح نافذة التعليمات البرمجية ، انظر الصورة:

3. وفي مربع المطالبة ، يرجى إدخال اسم لرمز البرنامج النصي هذا ، انظر لقطة الشاشة:

4. انقر OK ثم انسخ والصق الكود التالي لاستبدال الكود الأصلي في وحدة الكود ، انظر لقطة الشاشة:

function countColoredCells(countRange,colorRef) {
  var activeRg = SpreadsheetApp.getActiveRange();
  var activeSht = SpreadsheetApp.getActiveSheet();
  var activeformula = activeRg.getFormula();
  var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
  var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
  var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
  var BackGround = activeSht.getRange(colorRefAddress).getBackground();
  var countCells = 0;
  for (var i = 0; i < backGrounds.length; i++)
    for (var k = 0; k < backGrounds[i].length; k++)
      if ( backGrounds[i][k] == BackGround )
        countCells = countCells + 1;
  return countCells;
};

5. ثم احفظ كود البرنامج النصي هذا ، وأعد الورقة ، أدخل هذه الصيغة: = عدد الخلايا الملونة (A1: E11 ، A1) في خلية فارغة ، ثم اضغط على أدخل مفتاح للحصول على النتيجة المحسوبة. انظر لقطة الشاشة:

ملاحظات: في هذه الصيغة: A1: E11 هو نطاق البيانات الذي تريد استخدامه ، A1 هي الخلية المملوءة بلون معين تريد عده.

6. كرر الصيغة أعلاه لحساب الخلايا الملونة الأخرى.


مجموع قيم الخلايا على أساس لون الخلية مع البرنامج النصي في ورقة Google

لتلخيص قيم الخلية بلون خلية محدد ، يرجى تطبيق رمز البرنامج النصي أدناه.

1. انقر الأدوات > محرر النص للذهاب إلى نافذة المشروع ، وانقر قم بتقديم > جديد > ملف البرنامج النصي لإدراج وحدة رمز جديدة أخرى ، ثم في مربع المطالبة ، يرجى كتابة اسم لهذا البرنامج النصي ، انظر لقطة الشاشة:

2. انقر OK وفي وحدة الشفرة المفتوحة ، انسخ والصق رمز البرنامج النصي أدناه لاستبدال الكود الأصلي ، انظر لقطة الشاشة:

function sumColoredCells(sumRange,colorRef) {
  var activeRg = SpreadsheetApp.getActiveRange();
  var activeSht = SpreadsheetApp.getActiveSheet();
  var activeformula = activeRg.getFormula();
  var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
  var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
  var sumValues = activeSht.getRange(countRangeAddress).getValues();  
  var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
  var BackGround = activeSht.getRange(colorRefAddress).getBackground();
  var totalValue = 0;
  for (var i = 0; i < backGrounds.length; i++)
    for (var k = 0; k < backGrounds[i].length; k++)
      if ( backGrounds[i][k] == BackGround )
        if ((typeof sumValues[i][k]) == 'number')
          totalValue = totalValue + (sumValues[i][k]);
  return totalValue;
};

3. ثم احفظ هذا الرمز ، وارجع إلى الورقة ، وأدخل هذه الصيغة: = مجموع الخلايا (A1: E11 ، A1) في خلية فارغة ، واضغط على أدخل مفتاح للحصول على النتيجة المحسوبة ، انظر الصورة:

ملاحظات: في هذه الصيغة: A1: E11 هو نطاق البيانات الذي تريد استخدامه ، A1 هي الخلية ذات لون الخلفية المحدد الذي تريد جمعه.

4. وبعد ذلك يمكنك تكرار الصيغة أعلاه لتجميع خلايا ملونة أخرى محددة.


عد أو مجموع قيم الخلايا على لون الخلية باستخدام كوتولس ل إكسيل في مايكروسوفت إكسل

في Microsoft Excel ، لحساب أو جمع قيم الخلية بناءً على لون خلية معين ، كوتولس ل إكسيلالصورة عد حسب اللون يمكن أن تساعدك الأداة المساعدة على إنهاء هذه المهمة بأسرع ما يمكن.

كوتولس ل إكسيل : مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود في أيام 30. 

بعد تثبيت كوتولس ل إكسيل، يرجى القيام بذلك على النحو التالي:

1. حدد الخلايا إلى النطاق الذي تريد حسابه أو جمعه بناءً على لون الخلية ، ثم انقر فوق كوتولس بلس > عد حسب اللون، انظر لقطة الشاشة:

2. في عد حسب اللون مربع الحوار، اختر التنسيق القياسي من طريقة اللون القائمة المنسدلة ، ثم حدد خلفيّة من نوع العد المنسدلة ، انظر لقطة الشاشة:

3. ثم اضغط انشاء تقرير زر ، ويتم إنشاء ورقة عمل جديدة مع النتائج المحسوبة مرة واحدة ، انظر لقطة الشاشة:

ملاحظات: باستخدام هذه الميزة القوية ، يمكنك أيضًا حساب قيم الخلية بناءً على التنسيق الشرطي أو لون الخط.

انقر فوق تنزيل وتجربة مجانية Kutools for Excel الآن!

أفضل أدوات إنتاجية المكتب

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (79)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Hey I just wanted to thank you for this guide. It totally worked! Awesome! 👍
This comment was minimized by the moderator on the site
Hii, i need help!
Did somebody have the right script?
if u have it, can u pls send me?
thanks
This comment was minimized by the moderator on the site
i need the auto update for the sumcoloredcells formula
do you know how can i have it?
This comment was minimized by the moderator on the site
questo funziona

// restituisce la somma dei valori in un range in base al colore di sfondo della cella
// uso: =SommaSeSfondo(range;cella colore di riferimento )
// =SommaSeSfondo(B1:B8;E1)

function SommaSeSfondo(sumRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getActiveSheet();
var activeformula = activeRg.getFormula();
var countRangeAddress = activeformula.match(/\((.*)\;/).pop().trim();
var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
var sumValues = activeSht.getRange(countRangeAddress).getValues();
var colorRefAddress = activeformula.match(/\;(.*)\)/).pop().trim();
var BackGround = activeSht.getRange(colorRefAddress).getBackground();
var totalValue = 0;
for (var i = 0; i < backGrounds.length; i++)
for (var k = 0; k < backGrounds[i].length; k++)
if ( backGrounds[i][k] == BackGround )
if ((typeof sumValues[i][k]) == 'number')
totalValue = totalValue + (sumValues[i][k]);
return totalValue;
};
This comment was minimized by the moderator on the site
Hi Samal,

You have to use the formula:

=SommeCouleurs(A:A;A1) => A:A : columns that contain the colors to count and A1 : The cell that contains the example of the color.
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
'm having a problem in the script for google sheets: TypeError: Cannot call method "pop" of null. (line 5, file "SumByColor"). Can you please help?
This comment was minimized by the moderator on the site
Bonjour a tous,

J'utilise Google Sheet en version Française et voici le script le plus fonctionnel que j'ai trouvé:

function SommeCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();


var laplage = formule.match(/\((.*)\;/).pop();
var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();

var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();

var total = 0;

for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
total=total+(values[i][j]*1);
return total;

};


function CompteCouleurs(plage,couleur) {
var activeRange = SpreadsheetApp.getActiveRange();
var activeSheet = activeRange.getSheet();
var formule = activeRange.getFormula();


var laplage = formule.match(/\((.*)\;/).pop();
var range = activeSheet.getRange(laplage);
var bg = range.getBackgrounds();
var values = range.getValues();

var lacouleur = formule.match(/\;(.*)\)/).pop();
var colorCell = activeSheet.getRange(lacouleur);
var color = colorCell.getBackground();

var count = 0;


for(var i=0;i<bg.length;i++)
for(var j=0;j<bg[0].length;j++)
if( bg[i][j] == color )
count=count+1;
return count;
};

Formule a utiliser:

=CompteCouleurs(A2:A;A1)

Il s'actualise automatiquement.
En espérant que ca vous aidera
This comment was minimized by the moderator on the site
Добрый день!
Проверил, автоматически не пересчитывает, если изменить цвет в диапазоне ((
This comment was minimized by the moderator on the site
非常感謝大大分享~很實用我是用Google 試算表編輯
請問程式碼能教怎麼加總指定的文字顏色的數字總和嗎? (把 儲存格顏色 改為 文字顏色) 拜託~~
This comment was minimized by the moderator on the site
Hi, I have set it in google sheets as You have described, but it showed me error "Type error: Cannot read property 'pop' of null". PLS can you help me?
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations