تجمع =LET(total,SUM(B2:B6),IF(total>500,total*0.9,total)) النطاق B2:B6 مرة واحدة، وتسمي النتيجة total، ثم تستخدم ذلك الاسم مرتين: مرة لاختباره ومرة لإرجاعه. وبدون LET ستكتب SUM ثلاث مرات: =IF(SUM(B2:B6)>500,SUM(B2:B6)*0.9,SUM(B2:B6)).
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | Total to pay | |
| 2 | A-101 | 120 | 580.5 | |
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
مجموع الطلبات 645، وهو أكثر من 500، فتعرض D2 القيمة 580.5. غيّر B4 إلى 50 فينخفض المجموع إلى 485، تحت الحد، فتعرض D2 القيمة 485 دون خصم.
صيغة دالة LET
=LET(name1, value1, [name2, value2, ...], calculation)
- كل
nameكلمة تختارها، يليهاvalueالذي تمثله: رقم أو نطاق أو صيغة. - يمكنك تعريف حتى 126 زوجًا. ويمكن لقيمة أن تستخدم أي اسم عُرّف قبلها.
- الوسيط الأخير هو
calculation، الذي يستخدم الأسماء ويعطي النتيجة.
تحتاج LET إلى Excel 2021 أو Excel 2024 أو Microsoft 365. وفي Excel 2019 وما قبله تعرض #NAME?. وتحتوي Google Sheets على LET بالصيغة نفسها.
دالة LET بعدة متغيرات
تجعل الأسماء صيغة كل صف تُقرأ كجملة. هنا يحسب كل صف مجموعًا فرعيًا ويخصم 10% عندما يتجاوز 100:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Price | Qty | To pay |
| 2 | Pen | 2.5 | 10 | 25 |
| 3 | Bag | 40 | 3 | 108 |
| 4 | Lamp | 35 | 2 | 70 |
| 5 | Mug | 8 | 15 | 108 |
| 6 | Desk | 150 | 1 | 135 |
تصبح 120 للحقائب 108، وتصبح 120 للأكواب 108 أيضًا، وتصبح 150 للمكتب 135؛ وتبقى الأقلام (25) والمصابيح (70) كما هي. كُتبت الصيغة في D2 ونُسخت إلى الأسفل، ويعني subtotal رقمًا مختلفًا في كل صف.
ويمكن لاسم أن يُبنى على الاسم الذي قبله: تضبط =LET(x,2,y,x*3,x+y) قيمة x على 2 وy على 6، وتعيد 8.
حساب البحث مرة واحدة وإعادة استخدامه
البحث الذي يظهر مرتين في IF يُنفَّذ مرتين. وتنفذه LET مرة واحدة. تعيد هذه الصيغة السعر مع زيادة 20%، أو رسالة عندما يكون المنتج مفقودًا:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Region | Price | Look for | Price + 20% | |
| 2 | Apple | North | 1.2 | Pear | 1.8 | |
| 3 | Pear | South | 1.5 | Kiwi | Not found | |
| 4 | Carrot | East | 0.8 | |||
| 5 | Bread | North | 2.4 | |||
| 6 | Milk | South | 1.1 |
يُعثر على Pear، فتعرض F2 القيمة 1.8. أما Kiwi فليست في القائمة، فتعيد XLOOKUP النص الفارغ المعطى كوسيطها الرابع، وتعرض F3 النص Not found. اكتب Kiwi في A4 فتتغير F3 إلى سعرها مع زيادة 20%.
دالة LET مع FILTER
تكون LET أكثر فائدة مع المصفوفات الديناميكية، حيث يُحتاج إلى النطاق المصفّى أكثر من مرة. تسمي هذه الصيغة الصفوف المطابقة، وتعدّها، وتحسب متوسط مبيعاتها في صيغة واحدة:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Region | North | |
| 2 | Ann | North | 120 | Summary | 3 reps, average 126.7 | |
| 3 | Ben | South | 80 | |||
| 4 | Cara | North | 200 | |||
| 5 | Dan | East | 150 | |||
| 6 | Eve | South | 95 | |||
| 7 | Finn | North | 60 |
للمنطقة North تعرض "3 reps, average 126.7". اختر South في F1 لتحصل على "2 reps, average 87.5". تأخذ INDEX(rows,0,3) العمود الثالث من الصفوف المصفّاة. وبدون LET، كانت FILTER ستُكتب مرتين.
تقويم شهري مع خلايا فارغة
يعرض التقويم في صفحة SEQUENCE أيامًا من الأشهر المجاورة. تسمي LET أول الشهر وشبكة التواريخ، ثم تفرّغ كل تاريخ خارج الشهر:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Sun | Mon | Tue | Wed | Thu | Fri | Sat |
| 2 | 1 | 2 | 3 | 4 | |||
| 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 5 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 6 | 26 | 27 | 28 | 29 | 30 |
غيّر DATE(2026,4,1) إلى DATE(2026,5,1) فيُعاد رسم الشبكة لشهر مايو. ولأن أول الشهر مسمّى مرة واحدة، يوجد تاريخ واحد فقط تغيّره، لا ثلاثة.
تمرين: الشحن مع LET
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Amount | To pay | |
| 2 | A-101 | 120 | ||
| 3 | A-102 | 95 | ||
| 4 | A-103 | 210 | ||
| 5 | A-104 | 80 | ||
| 6 | A-105 | 140 |
دورك: في D2، اجمع المبالغ في B2:B6. إذا كان المجموع أقل من 800، فأضف 25 للشحن؛ وإلا فأعد المجموع.
قواعد التسمية في LET وأخطاؤها
معظم أخطاء LET تأتي من الأسماء:
- يجب أن يبدأ الاسم بحرف وألا يحتوي على مسافات. يفشل
unit price؛ استخدمunit_priceأوunitPrice. - لا يمكن أن يشبه الاسم عنوان خلية.
a1وtax2026عنوانا خليتين في الاكسل (TAX عمود)، فترفضهما LET بالخطأ #NAME?. أماrateأوtax_2026فيعملان. - يُكتب الاسم بالطريقة نفسها تمامًا في كل مرة يُستخدم فيها. والخطأ الإملائي حيث يُستخدم يعطي #NAME?، لأن الاكسل يبحث عن دالة أو نطاق مسمّى بتلك الكتابة.
- يجب أن يكون الوسيط الأخير حسابًا. في
=LET(x,5)اسم وقيمة لكن لا شيء يُعاد، فيرفضها الاكسل. - الأسماء موجودة داخل صيغتها فقط. ولإعادة استخدام حساب في خلايا كثيرة، احفظه كدالة LAMBDA مسمّاة بدلًا من ذلك.
=LET(a1,5,a1*2) #NAME? (a1 is a cell address)
=LET(rate,8%,100*rate) 8
الأسئلة الشائعة
ماذا تفعل دالة LET في الاكسل؟
تعطي أسماء لقيم داخل صيغة واحدة. تحسب =LET(total,SUM(B2:B6),total*2) الدالة SUM(B2:B6) مرة واحدة، وتسميها total، وتعيد total مضروبًا في 2. والأسماء موجودة داخل تلك الصيغة فقط.
كيف أستخدم أكثر من متغير في LET؟
أضف أزواجًا أخرى من الاسم والقيمة قبل الحساب الأخير: =LET(price,B2,qty,C2,price*qty). ويمكن لقيمة لاحقة أن تستخدم اسمًا سابقًا، كما في =LET(x,2,y,x*3,x+y)، التي تعيد 8.
لماذا تعيد صيغة LET الخطأ #NAME?؟
إما أن الاكسل لديك لا يحتوي على LET (تحتاج إلى Excel 2021 أو Microsoft 365)، أو أن اسمًا مكتوب بشكل خاطئ حيث يُستخدم، أو أن اسمًا غير مسموح به، مثل اسم يشبه عنوان خلية كـ a1 أو tax2026، أو اسم يبدأ برقم.
هل تجعل LET صيغ الاكسل أسرع؟
قد تفعل. فبدون LET يُحسب التعبير المكرر، مثل XLOOKUP نفسها مكتوبة مرتين داخل IF، في كل مرة يظهر فيها. ومع LET يُحسب مرة واحدة وتُعاد النتيجة.