Menu

ספירת ערכים ייחודיים באקסל: נוסחאות UNIQUE ו-COUNTIF

=COUNTA(UNIQUE(A2:A9)) סופרת כמה ערכים שונים יש ב-A2:A9. בגרסאות ישנות של אקסל השתמשו ב-=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9)). ספירת ערכים שמופיעים פעם אחת, ספירה עם תנאי, ודילוג על תאים ריקים.

כל גיליון בעמוד הזה חי: שנו מספר או נוסחה והוא יחושב מחדש.

=COUNTA(UNIQUE(A2:A9)) סופרת כמה ערכים שונים יש ב-A2:A9. UNIQUE מחזירה כל ערך פעם אחת, ו-COUNTA סופרת את הרשימה הזו. היא דורשת Excel 2021 או Microsoft 365; גרסאות ישנות יותר מוסברות בהמשך.

לקוחות שונים
D2
ABCD
1CustomerUnique listCount
2AnaAna5
3BenBen
4AnaCara
5CaraDan
6BenEva
7Dan
8Ana
9Eva
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

שמונה הזמנות הגיעו מחמישה לקוחות. C2 שופך את רשימת השמות של UNIQUE כדי שתוכלו לראות מה נספר, ו-D2 סופר אותה בלי שהרשימה תצטרך להופיע בגיליון. שנו את A9 ל-Ana והספירה יורדת ל-4; הקלידו שם חדש והיא עולה.

UNIQUE מתעלמת מגודל אותיות, ולכן Ana ו-ana נספרים כלקוח אחד.

ספירת ערכים ייחודיים בגרסאות ישנות של אקסל

ב-Excel 2019 ובגרסאות קודמות אין UNIQUE. הנוסחה הקלאסית היא:

=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))

COUNTIF עם הטווח כולו כקריטריון מחזירה, לכל שורה, כמה פעמים הערך של השורה מופיע. שם שמופיע 3 פעמים מקבל 3 בכל אחת מהשורות שלו, ולכן 1/3 מתווסף שלוש פעמים והשם מסתכם בדיוק ב-1. עמודה B מציגה את הספירה של כל שורה ועמודה C את השבר.

איך 1/COUNTIF עובד
E2
ABCDE
1CustomerTimes1/TimesCount
2Ana30.335
3Ben20.505.00
4Ana30.33
5Cara11.00
6Ben20.50
7Dan11.00
8Ana30.33
9Eva11.00
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

כל אחת משלוש השורות של Ana מוסיפה 0.33, כל אחת משתי השורות של Ben מוסיפה 0.50, ושלושת השמות הבודדים מוסיפים 1 כל אחד: 5 בסך הכול, כמו ה-SUM של עמודת העזר. על עשרות אלפי שורות הנוסחה הזו איטית, כי COUNTIF סורקת את כל הטווח פעם אחת לכל שורה; ל-UNIQUE אין את המחיר הזה.

ערכים שונים מול ייחודיים: ערכים שמופיעים רק פעם אחת

"ייחודי" משמש לשתי ספירות שונות. זו שלמעלה סופרת ערכים שונים: כל שם פעם אחת. השנייה סופרת את הערכים שמופיעים בדיוק פעם אחת, למשל לקוחות שהזמינו רק פעם אחת. UNIQUE עושה את זה כשהארגומנט השלישי שלה, exactly_once, מוגדר ל-TRUE.

שונים ופעם אחת בדיוק
D3
ABCD
1CustomerCountResult
2AnaDistinct5
3BenExactly once3
4AnaExactly once, older Excel3
5Cara
6Ben
7Dan
8Ana
9Eva
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

חמישה לקוחות שונים, אבל רק שלושה מהם, Cara, Dan ו-Eva, הזמינו פעם אחת. הגרסה לאקסל הישן סופרת את השורות שה-COUNTIF שלהן הוא בדיוק 1. אם כל ערך חוזר, UNIQUE עם exactly_once מחזירה #CALC! ו-COUNTA סופרת את השגיאה הזו כ-1; הגרסה עם SUMPRODUCT נותנת 0.

ספירת ערכים ייחודיים עם תנאי

כדי לספור את הלקוחות השונים באזור אחד, קודם סננו את השורות ואז ספרו את מה שנשאר. FILTER שומרת את השורות של North ו-UNIQUE מסירה את החזרות.

לקוחות שונים לכל אזור
E2
ABCDE
1CustomerRegionRegionCustomers
2AnaNorthNorth3
3BenSouthSouth3
4AnaNorthNorth, older Excel3
5CaraNorth
6BenNorth
7DanSouth
8AnaNorth
9EvaSouth
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

ל-North יש חמש הזמנות משלושה לקוחות: Ana, Cara ו-Ben. E3 סופר את South באותה דרך. E4 היא הגרסה ל-Excel 2019 ולגרסאות קודמות: COUNTIFS סופרת כל זוג של לקוח ואזור, והתנאי משאיר רק את השברים של North.

אם אף שורה לא מתאימה, FILTER מחזירה #CALC!, ו-COUNTA סופרת את השגיאה הזו כערך אחד: הקלידו West ב-D2 ו-E2 יציג 1, לא 0. עטיפת הנוסחה ב-IFERROR לא עוזרת, כי COUNTA לא מחזירה שגיאה. ספרו במקום זאת את השורות של התוצאה, שכן מעבירה את השגיאה הלאה: =IFERROR(ROWS(UNIQUE(FILTER(A2:A9,B2:B9="West"))),0) מחזירה 0.

ספירת ערכים ייחודיים בלי תאים ריקים

תא ריק בטווח הופך ל"ערך" נוסף. UNIQUE מחזירה אותו כ-0 ו-COUNTA סופרת את ה-0 הזה, ולכן עבור Ana, תא ריק, Ben, Ana, תא ריק, Cara ו-Ben, אקסל נותן:

=COUNTA(UNIQUE(A2:A8))    4   three names plus the 0 for the empty cells

בנוסחה הישנה, שורה ריקה גורמת ל-COUNTIF להחזיר 0, ולכן 1/0 נותן #DIV/0!. הסירו קודם את התאים הריקים:

טווח עם חורים
D2
ABCD
1CustomerFormulaCount
2AnaSkip blanks3
3Older Excel3
4Ben
5Ana
6
7Cara
8Ben
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

שתי הנוסחאות סופרות את שלושת הלקוחות. FILTER עם A2:A8<>"" מוציאה את התאים הריקים לפני ש-UNIQUE רואה אותם. בנוסחה הישנה, A2:A8&"" הופך כל תא ריק למחרוזת ריקה כך ש-COUNTIF אף פעם לא מחזירה 0, ו-(A2:A8<>"") נותן לשורות האלה משקל 0.

תרגול: ספירת המוצרים

תורכם: כמה מוצרים?
E2
ABCDE
1OrderProductCountResult
21001AppleProducts
31002Pear
41003Apple
51004Plum
61005Pear
71006Apple
81007Plum
91008Fig
לחצו על תא כדי לראות את הנוסחה שלו. שנו מספר או נוסחה והגיליון יחושב מחדש.

תורכם: ספרו כמה מוצרים שונים מופיעים ב-B2:B9. כתבו את הנוסחה ב-E2.

איזו נוסחה לגרסת האקסל שלכם

ספירהExcel 365 / 2021Excel 2019 וגרסאות קודמות
ערכים שונים=COUNTA(UNIQUE(A2:A9))=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9))
ערכים שמופיעים פעם אחת=COUNTA(UNIQUE(A2:A9,,TRUE))=SUMPRODUCT(--(COUNTIF(A2:A9,A2:A9)=1))
ערכים שונים, עם תנאי=COUNTA(UNIQUE(FILTER(A2:A9,B2:B9="North")))=SUMPRODUCT((B2:B9="North")/COUNTIFS(A2:A9,A2:A9,B2:B9,B2:B9))
ערכים שונים, בלי תאים ריקים=COUNTA(UNIQUE(FILTER(A2:A9,A2:A9<>"")))=SUMPRODUCT((A2:A9<>"")/COUNTIF(A2:A9,A2:A9&""))

בטבלת ציר, הסיכום "Distinct Count" (ספירת ערכים שונים) עושה את אותה עבודה בלי נוסחה, אבל רק כשטבלת הציר נוצרת כשהאפשרות "Add this data to the Data Model" (הוספת הנתונים למודל הנתונים) מסומנת. כדי למחוק את החזרות במקום לספור אותן, ראו הסרת כפילויות.

שאלות נפוצות

איך סופרים ערכים ייחודיים באקסל?

ב-Excel 365 או 2021, השתמשו ב-=COUNTA(UNIQUE(A2:A9)): UNIQUE מציגה כל ערך פעם אחת ו-COUNTA סופרת את הרשימה. בגרסאות ישנות יותר השתמשו ב-=SUMPRODUCT(1/COUNTIF(A2:A9,A2:A9)).

איך סופרים ערכים שמופיעים רק פעם אחת?

הגדירו את הארגומנט השלישי של UNIQUE, exactly_once, ל-TRUE: =COUNTA(UNIQUE(A2:A9,,TRUE)). עבור Ana, Ana, Ben היא נותנת 1, כי רק Ben מופיע פעם אחת. ב-Excel 2019 ובגרסאות קודמות השתמשו ב-=SUMPRODUCT(--(COUNTIF(A2:A9,A2:A9)=1)).

איך סופרים ערכים ייחודיים עם תנאי?

קודם סננו, ואז ספרו: =COUNTA(UNIQUE(FILTER(A2:A9,B2:B9="North"))) סופרת את הלקוחות השונים בשורות של North. אם אף שורה לא מתאימה, COUNTA סופרת את שגיאת #CALC! של FILTER כ-1, ולכן כשזה יכול לקרות השתמשו ב-=IFERROR(ROWS(UNIQUE(FILTER(A2:A9,B2:B9="North"))),0).

איך סופרים ערכים ייחודיים ומתעלמים מתאים ריקים?

הסירו את התאים הריקים לפני UNIQUE: =COUNTA(UNIQUE(FILTER(A2:A9,A2:A9<>""))). בגרסאות ישנות של אקסל, =SUMPRODUCT((A2:A9<>"")/COUNTIF(A2:A9,A2:A9&"")) מדלגת עליהם.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל