Բաց թողնել հիմնական բովանդակությունը

Ինչպե՞ս Excel- ում բազմաթիվ սյուններից յուրահատուկ արժեքներ հանել:

Ենթադրելով, որ դուք ունեք մի քանի սյունակ ՝ բազմաթիվ արժեքներով, որոշ արժեքներ կրկնվում են նույն սյունակում կամ տարբեր սյունակում: Եվ հիմա դուք ցանկանում եք գտնել այն արժեքները, որոնք առկա են որևէ սյունակում միայն մեկ անգամ: Excel- ում բազմաթիվ սյունակներից եզակի արժեքներ հանելու համար կա՞ն արագ հնարքներ:


Բազմաթիվ սյունակներից հանեք եզակի արժեքներ բանաձևերով

Այս բաժինը կներառի երկու բանաձև՝ մեկը օգտագործելով զանգվածի բանաձևը, որը հարմար է Excel-ի բոլոր տարբերակների համար, և մյուսը՝ օգտագործելով դինամիկ զանգվածի բանաձև՝ հատուկ Excel 365-ի համար:

Բազմաթիվ սյունակներից հանեք եզակի արժեքներ Array բանաձևով Excel-ի բոլոր տարբերակների համար

Excel-ի ցանկացած տարբերակ ունեցող օգտատերերի համար զանգվածի բանաձևերը կարող են հզոր գործիք լինել բազմաթիվ սյունակներում եզակի արժեքներ հանելու համար: Ահա թե ինչպես կարող եք դա անել.

1, Ենթադրելով ձեր արժեքները միջակայքում A2: C9Խնդրում ենք E2 բջիջում մուտքագրել հետևյալ բանաձևը.

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
ՆշումՎերոհիշյալ բանաձևում A2: C9 ցույց է տալիս այն բջիջների շարքը, որոնք ցանկանում եք արդյունահանել եզակի արժեքները, E1: E1 սյունակի առաջին բջիջն է, որը ցանկանում եք տեղադրել արդյունքը, $ 2- ը, $ 9 շարքերում կանգնածները պարունակում են այն բջիջները, որոնք դուք ցանկանում եք օգտագործել, և $ A: $ C նշում է, որ սյունները պարունակում են այն բջիջները, որոնք ցանկանում եք օգտագործել: Խնդրում եմ դրանք փոխեք ձեր սեփականով:

2, Դրանից հետո սեղմեք Shift + Ctrl + Enter ստեղները միասին, ապա քաշեք լրացման բռնիչը ՝ հանելու եզակի արժեքները մինչև դատարկ բջիջների հայտնվելը: Տեսեք,

Այս բանաձևի բացատրությունը.
  1. $ A $ 2: $ C $ 9Սա սահմանում է ստուգվող տվյալների տիրույթը, որը A2-ից մինչև C9 բջիջներն են:
  2. IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
    • $A$2:$C$9<>"" ստուգում է, թե արդյոք տիրույթի բջիջները դատարկ չեն:
    • COUNTIF($E$1:E1,$A$2:$C$9)=0 որոշում է, արդյոք այս բջիջների արժեքները դեռևս նշված չեն E1-ից մինչև E1 բջիջների միջակայքում:
    • Եթե ​​երկու պայմաններն էլ բավարարված են (այսինքն՝ արժեքը դատարկ չէ և դեռ նշված չէ E սյունակում), IF ֆունկցիան հաշվարկում է եզակի թիվ՝ հիմնվելով իր տողի և սյունակի վրա (ROW($2:$9)*100+COLUMN($A: $C)):
    • Եթե ​​պայմանները չկատարվեն, ֆունկցիան վերադարձնում է մեծ թիվ (7^8), որը ծառայում է որպես տեղապահ։
  3. MIN (...)Գտնում է վերը նշված IF ֆունկցիայի վերադարձած ամենափոքր թիվը, որը համապատասխանում է հաջորդ եզակի արժեքի գտնվելու վայրին:
  4. ՏԵՔՍՏ (..."R0C00")Այս նվազագույն թիվը փոխակերպում է R1C1 ոճի հասցեի: Ձևաչափի կոդը R0C00 ցույց է տալիս համարի վերափոխումը Excel-ի բջջային հղման ձևաչափի:
  5. ԱՆՈՒՂԻՂ (...)Օգտագործում է INDIRECT ֆունկցիան՝ նախորդ քայլում ստեղծված R1C1 ոճի հասցեն ետ վերածելու սովորական A1 ոճի բջջային հղումի: INDIRECT ֆունկցիան թույլ է տալիս բջջային հղումներ կատարել՝ հիմնված տեքստային տողի բովանդակության վրա:
  6. &""Բանաձևի վերջում ավելացնելով &""-ն ապահովում է, որ վերջնական արդյունքը դիտարկվում է որպես տեքստ, այնպես որ զույգ թվերը կցուցադրվեն որպես տեքստ:
 
Բազմաթիվ սյունակներից հանեք եզակի արժեքներ Excel 365-ի բանաձևով

Excel 365-ն աջակցում է դինամիկ զանգվածներին, ինչը շատ ավելի հեշտ է դարձնում եզակի արժեքներ մի քանի սյունակներից հանելը.

Խնդրում ենք մուտքագրել կամ պատճենել հետևյալ բանաձևը դատարկ բջիջի մեջ, որտեղ ցանկանում եք տեղադրել արդյունքը, այնուհետև սեղմել Մտնել բանալին՝ բոլոր եզակի արժեքները միանգամից ստանալու համար: Տես սքրինշոթը.

=UNIQUE(TOCOL(A2:C9,1))


Բազմաթիվ սյունակներից հանեք եզակի արժեքներ Kutools AI Aide-ով

Սանձազերծել ուժը Kutools AI օգնական Excel-ի բազմաթիվ սյունակներից անխափան կերպով եզակի արժեքներ հանելու համար: Ընդամենը մի քանի կտտոցով այս խելացի գործիքը մաղում է ձեր տվյալները՝ նույնականացնելով և թվարկելով եզակի գրառումները ցանկացած ընտրված տիրույթում: Մոռացեք բարդ բանաձևերի կամ vba կոդի դժվարությունները; Ընդունեք դրա արդյունավետությունը Kutools AI օգնական և ձեր Excel-ի աշխատանքային հոսքը վերածեք ավելի արդյունավետ և առանց սխալների փորձի:

ՆշումՍա օգտագործելու համար Kutools AI օգնական of Excel- ի համար նախատեսված գործիքներ, խնդրում եմ ներբեռնեք և տեղադրեք Kutools Excel-ի համար առաջին.

Excel- ի համար Kutools- ը տեղադրելուց հետո սեղմեք Kutools AI > AI օգնական բացելու համար Kutools AI օգնական պատուհան:

  1. Մուտքագրեք ձեր պահանջը զրույցի վանդակում և սեղմեք ուղարկել կոճակը կամ սեղմել Մտնել հարց ուղարկելու բանալին;
    «Հանեք եզակի արժեքներ A2:C9 միջակայքից՝ անտեսելով դատարկ բջիջները և տեղադրեք արդյունքները՝ սկսած E2-ից.
  2. Վերլուծելուց հետո սեղմեք Կատարել կոճակ գործելու համար: Kutools AI Aide-ը կմշակի ձեր հարցումը AI-ի միջոցով և արդյունքները կվերադարձնի նշված բջիջում անմիջապես Excel-ում:


Բազմազան սյուններից հանեք եզակի արժեքներ առանցքային աղյուսակով

Եթե ​​ծանոթ եք առանցքային աղյուսակին, կարող եք հեշտությամբ հանել եզակի արժեքները `կազմելով բազմաթիվ սյուններ հետևյալ քայլերով.

1, Սկզբում խնդրում եմ տեղադրեք մեկ նոր դատարկ սյուն ձեր տվյալների ձախ կողմում, այս օրինակում ես բնօրինակ տվյալների կողքին կտեղադրեմ Ա սյուն:

2, Սեղմեք մեկ բջիջ ձեր տվյալների մեջ և սեղմեք Alt + D ստեղները, ապա սեղմել P անմիջապես ստեղնը բացելու համար PivotTable և PivotChart Wizard, ընտրել Բազմաթիվ համախմբման միջակայքեր կախարդ step1- ում, տես նկարի նկարը.

3. Այնուհետեւ կտտացրեք հաջորդ կոճակ, ստուգեք Ինձ համար ստեղծեք մեկ էջի դաշտ տարբերակը հրաշագործ step2- ում, տես նկարի նկարը.

4, Անցեք կտտացնելով հաջորդ կոճակը, կտտացրեք ընտրելու տվյալների տիրույթը, որը ներառյալ բջիջների ձախ նոր սյունակը, ապա կտտացրեք Ավելացնել կոճակը տվյալների տիրույթն ավելացնելու համար Բոլոր միջակայքերը ցուցակի տուփ, տես նկարի նկարը.

5, Տվյալների տիրույթն ընտրելուց հետո շարունակեք կտտացնել հաջորդ, կախարդ 3-րդ քայլում ընտրեք, թե որտեղ եք ցանկանում տեղադրել առանցքային աղյուսակի զեկույցը, ինչպես ցանկանում եք:

6. Վերջապես կտտացրեք Ավարտել կախարդը լրացնելու համար, և ներկայիս աշխատանքային թերթում ստեղծվել է առանցքային աղյուսակ, ապա հանել բոլոր դաշտերը Ընտրեք դաշտեր ՝ զեկուցելու համար բաժին, տես նկարի նկարը.

7. Դրանից հետո ստուգեք դաշտը Արժեք կամ քաշեք արժեքը դեպի Rows պիտակը, այժմ դուք կստանաք եզակի արժեքներ բազմաթիվ սյուններից հետևյալ կերպ.


VBA կոդով բազմաթիվ սյուններից հանեք եզակի արժեքներ

Հետևյալ VBA կոդով դուք կարող եք նաև դուրս բերել եզակի արժեքներ բազմաթիվ սյունակներից:

1, Պահեք պահեք ALT + F11 ստեղները, և այն բացում է Microsoft Visual Basic հավելվածների համար պատուհան.

2: Սեղմեք Տեղադրել > Մոդուլներև տեղադրեք հետևյալ կոդը Մոդուլի պատուհանում:

VBA. Բազմաթիվ սյունակներից հանեք եզակի արժեքներ

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3, Դրանից հետո սեղմեք F5 գործարկել այս կոդը, և կհայտնվի հուշման տուփ ՝ հիշեցնելու համար, որ ընտրեք տվյալների տիրույթը, որը ցանկանում եք օգտագործել: Տեսեք,

4. Եվ այնուհետեւ կտտացրեք OK, կհայտնվի մեկ այլ արագ տուփ, որը հնարավորություն կտա ձեզ ընտրել արդյունք տեղադրելու տեղ, տես նկարի նկարը.

5. Սեղմել OK փակել այս երկխոսությունը, և բոլոր եզակի արժեքները միանգամից արդյունահանվել են:


Ավելի հարաբերական հոդվածներ.

  • Հաշվիր եզակի և հստակ արժեքների քանակը ցուցակից
  • Ենթադրելով, որ դուք ունեք արժեքների երկար ցուցակ որոշ կրկնօրինակ տարրերով, այժմ ցանկանում եք հաշվել եզակի արժեքների քանակը (այն արժեքները, որոնք ցուցակում հայտնվում են միայն մեկ անգամ) կամ հստակ արժեքները (ցուցակի բոլոր տարբեր արժեքները, դա նշանակում է եզակի արժեքներ + 1-ին կրկնօրինակ արժեքներ) սյունակում, ինչպես ցույց է տրված ձախ սքրինշոթը: Այս հոդվածում ես կխոսեմ այն ​​մասին, թե ինչպես վարվել այս աշխատանքի հետ Excel- ում:
  • Excel- ի չափանիշների հիման վրա հանեք եզակի արժեքներ
  • Ենթադրելով, որ դուք ունեք տվյալների հետևյալ շարքը, որը ցանկանում եք ցուցակագրել միայն B սյունակի եզակի անունները `հիմնվելով A սյունակի հատուկ չափանիշի վրա` արդյունքը ստանալու համար, ինչպես ցույց է տրված ստորև նշված էկրանի նկարը: Ինչպե՞ս կարող եք արագ և հեշտությամբ գործ ունենալ Excel- ի այս խնդրի հետ:
  • Excel- ում թույլատրեք միայն եզակի արժեքներ
  • Եթե ​​ցանկանում եք պահպանել միայն եզակի արժեքները, որոնք մուտքագրվում են աշխատաթերթի սյունակում և կանխում են կրկնօրինակները, այս հոդվածը ձեզ կներկայացնի մի քանի արագ հնարքներ `այս խնդրի լուծման համար:
  • Excel- ի չափանիշների հիման վրա եզակի արժեքների գումար
  • Օրինակ, ես ունեմ տվյալների մի շարք, որոնք պարունակում են Անուն և Պատվիրության սյուններ, այժմ ՝ Անվան սյունակի հիման վրա Պատվեր սյունակում միայն եզակի արժեքներն ամփոփելու համար, ինչպես ցույց է տրված հետևյալ նկարը: Ինչպե՞ս արագ և հեշտությամբ լուծել այս խնդիրը Excel- ում:

Գրասենյակի արտադրողականության լավագույն գործիքները

🤖 Kutools AI օգնականՀեղափոխություն կատարել տվյալների վերլուծության հիման վրա՝ Խելացի կատարում   |  Ստեղծեք ծածկագիր  |  Ստեղծեք հատուկ բանաձևեր  |  Վերլուծել տվյալները և ստեղծել գծապատկերներ  |  Invoke Kutools-ի գործառույթները...
Հանրաճանաչ հատկություններ: Գտեք, ընդգծեք կամ նույնականացրեք կրկնօրինակները   |  Deleteնջել դատարկ շարքերը   |  Միավորել սյունակները կամ բջիջները՝ առանց տվյալների կորստի   |   Կլոր առանց բանաձևի ...
Super Փնտրել: Բազմաթիվ չափանիշների VLookup    Բազմակի արժեք VLookup  |   VLookup բազմաթիվ թերթերում   |   Fuzzy Փնտրել ....
Ընդլայնված բացվող ցուցակ: Արագ ստեղծեք բացվող ցուցակը   |  Կախված բացվող ցուցակ   |  Բազմակի ընտրություն Drop Down ցուցակ ....
Սյունակի կառավարիչ: Ավելացրեք որոշակի քանակությամբ սյունակներ  |  Տեղափոխել սյունակները  |  Փոխարկել թաքնված սյունակների տեսանելիության կարգավիճակը  |  Համեմատեք միջակայքերը և սյունակները ...
Առանձնահատկություններ: Ցանցի կենտրոնացում   |  Դիզայնի տեսք   |   Մեծ Formula Bar    Աշխատանքային գրքույկի և թերթիկների կառավարիչ   |  Ռեսուրսների գրադարան (Ավտոմատ տեքստ)   |  Ամսաթիվ ընտրող   |  Միավորել աշխատանքային թերթերը   |  Գաղտնագրել/գաղտնազերծել բջիջները    Ուղարկեք նամակներ ըստ ցանկի   |  Սուպեր զտիչ   |   Հատուկ զտիչ (զտել թավ/շեղ/շեղված...) ...
Լավագույն 15 գործիքների հավաքածու12 Տեքստ Գործիքներ (Ավելացրեք տեքստ, Հեռացնել նիշերը, ...)   |   50+ Աղյուսակ Տեսակներ (Գանտի աղյուսակը, ...)   |   40+ Գործնական Բանաձեւեր (Հաշվարկել տարիքը ՝ ելնելով ծննդյան տարեդարձից, ...)   |   19 միացում Գործիքներ (Տեղադրեք QR կոդ, Տեղադրեք նկար ուղուց, ...)   |   12 Փոխարկում Գործիքներ (Բառեր համարներ, Արտարժույթի փոխակերպումը, ...)   |   7 Միաձուլում և պառակտում Գործիքներ (Ընդլայնված կոմբինատ տողեր, Պառակտված բջիջներ, ...)   |   ... եւ ավելին

Լրացրեք ձեր Excel-ի հմտությունները Kutools-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար:  Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...

Նկարագրություն


Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք

  • Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
  • Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
  • Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
Comments (31)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thank you for this solution, however what if the columns are in separate excel sheet? or is in separate columns instead of a table?
This comment was minimized by the moderator on the site
Hello, Jon,
The methods in this article ar only works well for a range of data, if your data in separate columns, you should copy and paste them into one range first, and then apply the formula or VBA code.
Thank you!
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello, Michael H.
Thanks for your kindly explanation.
Hope this can help others in the future.😄
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello Sir! The VBA worked wonders, thank you very much for that! I was wondering, If I change the original data, is it possible to refresh the column with the unique values automatically?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Ioannis,

Glad to help. After you change the original data, the VBA can not refresh the result automatically. And the easiest way I can think of is to press Ctrl + Alt + F9 to refresh all results in worksheets in all open workbooks. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
The array formula at the top is working great when used with data in the same sheet, however when I try to use it to reference the same exact data from another sheet the formula returns nothing. I'm unable to figure out why. Is there a limitation with array functions that prevents you from referencing ranges in a different sheet?

Thanks for any insight you can provide.
This comment was minimized by the moderator on the site
Hello Erin,

Glad to help. The INDIRECT function in this formula is more complicated to use when referencing data in other worksheets. It is not recommended to use this feature when referencing ranges in different worksheets.

For example: Now the data is in Sheet1, I want to reference the content of cell C2 of Sheet1 in Sheet2. First, in any two cells in Sheet2, such as D1 and D2, enter Sheet1 and C2, respectively. At this point, enter the formula in the empty cell of Sheet2:
=INDIRECT("'"&D1&"'!"&D2), then the content of cell C2 in Sheet1 can be returned.

As you can see, it make things way more complex. Hope my explanation can help. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Czy to żart?
This comment was minimized by the moderator on the site
can we create uniqdata function instead of macro?
This comment was minimized by the moderator on the site
Hi, İlhan,If you like a User Defined Function to create a formula for solving this problem, the below code may help you:After inserting the code, select a list of cells where you want to put the results. Then type this formula:=Uniques(A1:C4)  in the formula bar.Press Ctrl+Shift+Enter keys together. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
This comment was minimized by the moderator on the site
Thanks for the code. I'm using the VBA code of this page. Is there a way to add a sorting code after the unique values are extracted so it sorts it automatically?
This comment was minimized by the moderator on the site
Regarding the formula version, could you explain in more detail what this portion is doing? *100+COLUMN($A:$C),7^8)),"R0C00") Specifically, what are the *100, 7^8, and "R0C000" doing? I'm understanding everything else, but I can't figure out what these are for.
This comment was minimized by the moderator on the site
Little late for my response here but...
ROW($2:$9)*100 - this is multiplying the row number *100, so if it's in row 5, now the number is 500
COLUMN($A:$C) - this gets added to the row*100 number, so if it's row 5 col 2, then the number is 502.
7^8)), - this (I think) is to have a max value for the min statement from earlier.
"R0C00") - this formats the text based on the number. In the example, we had 502 so this gives R5C02 (row 5, col 02).

If you have a lot of columns but not many rows, then you could change it to ROW($2:$9)*1000+COLUMN($A:$C),7^8)),"R0C000")
This comment was minimized by the moderator on the site
i've adjusted to my sheet but am only returning the first value in the defined array... what am i missing?
This comment was minimized by the moderator on the site
Hello, Cody,
The above formula works well in my worksheet, could you give a screenshot of your data problem here?
Thank you!
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