Мазмұны
Мәндер жолын немесе бағанын екі өлшемді массивке түрлендірудің ең жылдам жолы - WRAPCOLS немесе WRAPROWS функциясын пайдалану.
Excel бағдарламасының ең алғашқы күндерінен бастап ол сандарды есептеуде және талдауда өте жақсы. Бірақ массивтерді өңдеу дәстүрлі түрде қиын болды. Динамикалық массивтерді енгізу массив формулаларын пайдалануды айтарлықтай жеңілдетті. Ал енді Microsoft массивтерді өңдеу және пішінін өзгерту үшін жаңа динамикалық массив функцияларының жинағын шығарады. Бұл оқулық бағанды немесе жолды қысқа уақытта 2D массивіне түрлендіру үшін осындай екі функцияны, WRAPCOLS және WRAPROWS пайдалануды үйретеді.
Excel WRAPCOLS функциясы
Excel бағдарламасындағы WRAPCOLS функциясы жолдағы мәндердің көрсетілген санына негізделген мәндердің жолын немесе бағанын екі өлшемді массивке түрлендіреді.
Синтаксисте келесі аргументтер бар:
WRAPCOLS(вектор, wrap_count, [pad_with])Мұндағы:
- вектор (міндетті) - бастапқы бір өлшемді массив немесе ауқым.
- wrap_count (міндетті) - әр бағандағы мәндердің максималды саны.
- pad_with (міндетті емес) - толтыру үшін элементтер жеткіліксіз болса, соңғы бағанмен толтырылатын мән. Өткізілмесе, жетіспейтін мәндер #N/A (әдепкі) толтырылады.
Мысалы, B5:B24 ауқымын әр бағанға 5 мәні бар 2 өлшемді массивке өзгерту үшін, формуласы:
=WRAPROWS(B5:B24, 5)
Сіз енгізесіз вектор аргументі бір өлшемді массив емес.
#NUM! қате
#NUM қатесі wrap_count мәні 0 немесе теріс сан болса орын алады.
#SPILL! қате
Көбінесе #ТӨГІЛУ қатесі нәтижелерді төгу үшін бос ұяшықтардың жеткіліксіз екенін көрсетеді. Көрші ұяшықтарды тазалаңыз, сонда ол жоғалады. Қате жойылмаса, Excel бағдарламасында #SPILL нені білдіретінін және оны қалай түзетуге болатынын тексеріңіз.
Бір өлшемді ауқымды Excel бағдарламасында екі өлшемді массивке түрлендіру үшін WRAPCOLS және WRAPROWS функцияларын осылайша пайдалану керек. Оқығаныңыз үшін алғыс айтамын және келесі аптада блогымызда көреміз деп үміттенемін!
Жүктеп алуға арналған жұмыс кітабы
WRAPCOLS және WRAPROWS функциялары - мысалдар (.xlsx файлы)
формула кез келген ұяшықта болады және ол қажетінше көптеген ұяшықтарға автоматты түрде төгіледі. WRAPCOLS шығысында мәндер wrap_countмәніне негізделген жоғарыдан төменге қарай тігінен орналасады. Есепке жеткеннен кейін жаңа баған басталады.
Excel WRAPROWS функциясы
Excel бағдарламасындағы WRAPROWS функциясы мәндердің жолын немесе бағанын сіз көрсеткен жолдағы мәндер санына негізделген екі өлшемді массивке түрлендіреді.
Синтаксис келесідей:
WRAPROWS(вектор, wrap_count, [pad_with])Мұндағы:
- вектор (қажетті) - бір өлшемді көз массив немесе диапазон.
- wrap_count (міндетті) - әр жолдағы мәндердің максималды саны.
- pad_with (қосымша) - толтырылатын мән толтыру үшін элементтер жеткіліксіз болса, соңғы қатармен. Әдепкі - #Жоқ.
Мысалы, B5:B24 ауқымын әр жолда 5 мәні бар 2D массивіне түрлендіру үшін мына формула:
=WRAPROWS(B5:B24, 5)
Сіз формуланы төгілу ауқымының жоғарғы сол жақ ұяшығына енгізесіз және ол барлық басқа ұяшықтарды автоматты түрде толтырады. WRAPROWS функциясы wrap_count мәніне негізделген мәндерді солдан оңға қарай көлденең орналастырады. Есепке жеткеннен кейін ол жаңа жолды бастайды.
WRAPCOLS және WRAPROWS қолжетімділігі
Екі функция тек Microsoft 365 (Windows және Mac) үшін Excel және вебке арналған Excel бағдарламасында қол жетімді.
Бұрынғы нұсқаларда.нұсқаларында бағанды массивке және жолдан массивке түрлендірулерді орындау үшін дәстүрлі күрделірек формулаларды пайдалануға болады. Әрі қарай осы оқулықта балама шешімдерді егжей-тегжейлі талқылаймыз.
Кеңес. Кері әрекетті орындау, яғни 2D массивін бір бағанға немесе жолға өзгерту үшін, сәйкесінше TOCOL немесе TOROW функциясын пайдаланыңыз.
Excel бағдарламасында бағанды/жолды диапазонға қалай түрлендіруге болады - мысалдар
Негізгі қолдануды түсінгеннен кейін, бірнеше нақты жағдайларды толығырақ қарастырайық.
Әр бағанға немесе жолға мәндердің максималды санын орнату
Осыған байланысты бастапқы деректеріңіздің құрылымын пайдалансаңыз, оны бағандарға (WRAPCOLS) немесе жолдарға (WRAPROWS) қайта реттеуге қолайлы деп табуыңыз мүмкін. Қай функцияны пайдалансаңыз да, бұл әр бағандағы/жолдағы мәндердің максималды санын анықтайтын wrap_count аргументі.
Мысалы, B4:B23 ауқымын 2D массивіне түрлендіру үшін, әрбір бағанның ең көбі 10 мәні болуы үшін мына формуланы пайдаланыңыз:
=WRAPCOLS(B4:B23, 10)
Әр жолда ең көбі 4 мән болатындай бірдей ауқымды жол бойынша қайта реттеу үшін формула :
=WRAPROWS(B4:B23, 4)
Төмендегі сурет оның қалай көрінетінін көрсетеді:
Нәтижедегі массивте бос мәндер жоқ
Толтыруға мәндер жеткіліксіз болған жағдайда алынған ауқымның барлық бағандары/жолдары, WRAPROWS және WRAPCOLS 2D массивінің құрылымын сақтау үшін #N/A қателерін қайтарады.
Әдепкі мәнді өзгерту үшінмінез-құлық үшін қосымша pad_with аргументі үшін теңшелетін мән бере аласыз.
Мысалы, B4:B21 ауқымын ені ең көбі 5 мәні бар 2D массивіне түрлендіру үшін және соңғысын толтырыңыз толтыру үшін деректер жеткіліксіз болса, сызықшалары бар жол, мына формуланы пайдаланыңыз:
=WRAPROWS(B4:B21, 5, "-")
Жетіспейтін мәндерді ұзындығы нөлдік жолдармен (бос жолдармен) ауыстыру үшін формула:
=WRAPROWS(B4:B21, 5, "")
Нәтижелерді әдепкі әрекетпен (D5-тегі формула) салыстырыңыз, мұнда pad_with көрсетілмеген:
Бірнеше жолды 2D диапазонына біріктіру
Бірнеше бөлек жолдарды бір 2D массивіне біріктіру үшін алдымен HSTACK функциясын пайдаланып жолдарды көлденеңінен жинаңыз, содан кейін WRAPROWS немесе WRAPCOLS көмегімен мәндерді ораңыз.
Мысалы, мәндерді біріктіру үшін 3 жол (B5:J5, B7:G7 және B9:F9) және әрқайсысы 10 мәнді қамтитын бағандарға ораңыз, формула:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
Бірнеше жолдағы мәндерді біріктіру үшін Әрбір жолда 5 мән бар 2D ауқымы, формула келесі пішінді алады:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
C бірнеше бағандарды 2D массивіне біріктіру
Бірнеше бағандарды 2D ауқымына біріктіру үшін алдымен оларды VSTACK функциясын пайдаланып тігінен жинаңыз, содан кейін мәндерді жолдарға (WRAPROWS) немесе бағандарға (WRAPCOLS) ораңыз.
Мысалы, 3 бағандағы мәндерді (B5:J5, B7:G7 және B9:F9) әрбір баған 10 мәнді қамтитын 2D ауқымына біріктіру үшін формула:
=WRAPCOLS(HSTACK(B5:J5, B7:G7, B9:F9), 10)
Біріктіру үшінбірдей бағандарды әрбір жол 5 мәнді қамтитын 2D ауқымына енгізіңіз, мына формуланы пайдаланыңыз:
=WRAPROWS(HSTACK(B5:J5, B7:G7, B9:F9), 5)
Массивті орау және сұрыптау
Бастапқы ауқымда мәндер болған жағдайда шығыстың сұрыпталуын қалаған кезде, келесі жолмен әрекет етіңіз:
- СҰРУ функциясын пайдаланып бастапқы массивті қалағаныңызша сұрыптаңыз.
- Сұрыпталған массивді WRAPCOLS жүйесіне беріңіз. немесе WRAPROWS.
Мысалы, B4:B23 ауқымын жолдарға, әрқайсысында 4 мәнге орау және нәтиже ауқымын А-дан Я-ға дейін сұрыптау үшін келесідей формуланы құрастырыңыз:
=WRAPROWS(SORT(B4:B23), 4)
Бірдей ауқымды бағандарға, әрқайсысында 10 мәнге орау және шығысты алфавит бойынша сұрыптау үшін формула:
=WRAPCOLS(SORT(B4:B23), 10)
Нәтижелер келесідей көрінеді :
Кеңес. Алынған жиымдағы мәндерді кему ретімен реттеу үшін СҰРЫПТАУ функциясының үшінші аргументін ( сұрыптау_тәртібі ) -1 мәніне орнатыңыз.
Excel 365 үшін WRAPCOLS балама - 2010
WRAPCOLS функциясына қолдау көрсетілмейтін ескі Excel нұсқаларында бір өлшемді жиымдағы мәндерді бағандарға орау үшін өзіңіздің формулаңызды құра аласыз. Мұны 5 түрлі функцияны бірге пайдалану арқылы жасауға болады.
Жолды 2D диапазонына түрлендіру үшін WRAPCOLS балама:
IFERROR(IF(ROW(A1)> n , "" , INDEX( жол_ауқымы , , ROW(A1) + (БАҒАН(A1)-1)* n )), "")бағанды 2D түріне түрлендіру үшін WRAPCOLS балама диапазон:
ҚАТЕЛІК(ЕГЕР(ҚОЛ(A1)> n ,"", INDEX( баған_ауқымы , ROW(A1) + (БАҒАН(A1)-1)* n )), "")Мұндағы n - әр бағандағы мәндердің максималды саны.
Төмендегі суретте бір жолды ауқымды (D4:J4) үш жолды массивке айналдыру үшін келесі формуланы қолданамыз.
=IFERROR(IF(ROW(A1)>3, "", INDEX($D$4:$J$4, , ROW(A1) + (COLUMN(A1)-1)*3)), "")
Және бұл формула бір бағандық ауқымды (B4:B20) бес жолды массивке өзгертеді:
=IFERROR(IF(ROW(A1)>5, "", INDEX($B$4:$B$20, ROW(A1) + (COLUMN(A1)-1)*5)), "")
Жоғарыдағы шешімдер ұқсас WRAPCOLS формулаларын эмуляциялайды және бірдей нәтижелерді шығарыңыз:
=WRAPCOLS(D4:J4, 3, "")
және
=WRAPCOLS(B4:B20, 5, "")
WRAPCOLS динамикалық массивінің функциясынан айырмашылығы, дәстүрлі формулалар келесіге сәйкес келетінін есте сақтаңыз. бір формула бір ұяшықты тәсіл. Сонымен, біздің бірінші формуламыз D8 ішіне енгізіліп, 3 жол төмен және 3 баған оңға көшірілді. Екінші формула D14 ішіне енгізіледі және 5 жол төмен және 4 баған оңға көшіріледі.
Бұл формулалар қалай жұмыс істейді
Екі формуланың негізінде жол мен баған нөміріне негізделген берілген массивтен мәнді қайтаратын INDEX функциясын қолданамыз:
INDEX(массив, жол_нөмірі, [баған_нөмірі])Біз бір жолды массивпен жұмыс істегендіктен, жол_саны аргументін өткізіп жіберуге болады, сондықтан ол әдепкі бойынша 1 болып табылады. col_num формула көшірілген әрбір ұяшық үшін автоматты түрде есептеледі. Міне, біз мұны істейміз:
ROW(A1)+(COLUMN(A1)-1)*3)
ROW функциясы A1 сілтемесінің жол нөмірін қайтарады, ол 1.
COLUMN функциясы баған нөмірін қайтарады.A1 сілтемесі, ол да 1. 1-ді алып тастау оны нөлге айналдырады. Ал 0-ді 3-ке көбейткенде 0 шығады.
Содан кейін сіз ROW арқылы қайтарылған 1 мен COLUMN арқылы қайтарылған 0-ді қосып, нәтижесінде 1 шығады.
Осылайша, жоғарғы жағындағы INDEX формуласы -тағайындалған диапазонның сол ұяшығы (D8) осы түрлендіруден өтеді:
INDEX($D$4:$J$4, ,ROW(A1) + (COLUMN(A1)-1)*3))
INDEX($D$4:$J$4, ,1)
болып өзгереді және 1-бағандағы мәнді қайтарады D4 ішіндегі "Алмалар" болып табылатын көрсетілген массивтің.
Формула D9 ұяшығына көшірілгенде, салыстырмалы ұяшық сілтемелері жолдар мен бағандардың салыстырмалы орналасуына негізделген өзгереді, ал абсолютті ауқым сілтемесі өзгеріссіз қалады:
INDEX($D$4:$J$4,, ROW(A2)+(COLUMN(A2)-1)*3))
келесіге айналады:
INDEX($D$4:$J$4,, 2+(1-1)*3))
:
INDEX($D$4:$J$4,, 2))
болады және мәнді қайтарады. Көрсетілген массивтің 2-бағаны, ол E4 ішіндегі "Өрік".
IF функциясы жол нөмірін тексереді және ол сіз көрсеткен жолдар санынан көп болса (біздің жағдайда 3) бос жолды қайтарады ( ""), әйтпесе INDEX функциясының нәтижесі:
IF(ROW(A1)>3, "", INDEX(…))
Соңында, IFERROR функциясы #REF! Формула шын мәнінде қажет болғаннан көп ұяшықтарға көшірілгенде пайда болатын қате.
Бағанды 2D ауқымына түрлендіретін екінші формула бірдей логикамен жұмыс істейді. Айырмашылығы мынада: INDEX үшін жол_саны аргументін анықтау үшін ROW + COLUMN тіркесімін пайдаланасыз. col_num параметрі бұл жағдайда қажет емес, себебі жай ғана барбастапқы массивтегі бір баған.
Excel 365 - 2010 үшін WRAPROWS балама
Excel 2019 және одан бұрынғы нұсқаларында бір өлшемді массивтің мәндерін жолдарға орау үшін пайдалануға болады WRAPROWS функциясына келесі баламалар.
Жолды 2D диапазонына түрлендіру:
ҚАТЕЛІК(ЕГЕР(БАҒАН(A1)> n , "", INDEX( ) жол_ауқымы , , БАҒАН(A1)+(ROW(A1)-1)* n )), "")Бағанды 2D ауқымына өзгерту:
ҚАТЕЛІК(ЕГЕР( БАҒАН(A1)> n , "", INDEX( баған_ауқымы , БАҒАН(A1)+(ROW(A1)-1)* n )) , "")Мұндағы n - әр жолдағы мәндердің максималды саны.
Біздің үлгі деректер жинағында бір жолдық ауқымды түрлендіру үшін келесі формуланы қолданамыз (D4). :J4) үш бағанды диапазонға. Формула D8 ұяшығына түседі, содан кейін 3 баған мен 3 жолға көшіріледі.
=IFERROR(IF(COLUMN(A1)>3, "", INDEX($D$4:$J$4, , COLUMN(A1)+(ROW(A1)-1)*3)), "")
1 бағандық ауқымды (B4:B20) 5 бағандық ауқымға өзгерту үшін, төмендегі формуланы D14 ішіне енгізіп, оны 5 баған мен 4 жол бойымен сүйреп апарыңыз.
=IFERROR(IF(COLUMN(A1)>5, "", INDEX($B$4:$B$20, COLUMN(A1)+(ROW(A1)-1)*5)), "")
Excel 365 нұсқасында бірдей нәтижелерге WRAPCOLS балама формулаларымен қол жеткізуге болады:
=WRAPROWS(D4:J4, 3, "")
және
=WRAPROWS(B4:B20, 5, "")
Бұл формулалар қалай жұмыс істейді
Негізінде, бұл формулалар алдыңғы мысалдағыдай жұмыс істейді. Айырмашылық INDEX функциясы үшін жол_саны және баған_саны координаттарын қалай анықтауда:
INDEX($D$4:$J$4,, COLUMN(A1)+(ROW(A1)-1)*3))
Жоғарғы баған нөмірін алу үшін тағайындау ауқымындағы сол ұяшықты (D8), сіз мұны пайдаланасызөрнек:
COLUMN(A1)+(ROW(A1)-1)*3)
, ол:
1+(1-1)*3
болып өзгереді және 1 береді.
Нәтижесінде, төмендегі формула көрсетілген массивтің бірінші бағанынан алынған мәнді қайтарады, ол «Алма»:
INDEX($D$4:$J$4,, 1)
Әзірге нәтиже алдыңғыдағымен бірдей. мысал. Бірақ басқа ұяшықтарда не болатынын көрейік...
D9 ұяшығында салыстырмалы ұяшық сілтемелері келесідей өзгереді:
INDEX($D$4:$J$4,, COLUMN(A2)+(ROW(A2)-1)*3))
Сонымен, формула келесіге өзгереді:
INDEX($D$4:$J$4,, 1+(2-1)*3))
келесіге айналады:
INDEX($D$4:$J$4,, 4))
және G4-те "Шие" болып табылатын көрсетілген массивтің 4-бағанынан мәнді қайтарады.
IF функциясы баған нөмірін тексереді және ол сіз көрсеткен бағандар санынан көп болса, бос жолды («») қайтарады, әйтпесе INDEX функциясының нәтижесі:
IF(COLUMN(A1)>3, "", INDEX(…))
Аяқтау ретінде IFERROR #REF! формуланы қажет болғаннан көп ұяшықтарға көшірсеңіз, «қосымша» ұяшықтарда пайда болатын қателер.
WRAPCOLS немесе WRAPROWS функциясы жұмыс істемейді
«Орау» функциялары қол жетімді болмаса Excel бағдарламасында немесе қатенің нәтижесінде төмендегі себептердің бірі болуы мүмкін.
#NAME? қате
Excel 365 бағдарламасында #NAME? қате функцияның атын қате жазғандықтан туындауы мүмкін. Басқа нұсқаларда бұл функцияларға қолдау көрсетілмейтінін көрсетеді. Шешім ретінде WRAPCOLS баламасын немесе WRAPROWS баламасын пайдалануға болады.
#VALUE! қате
#VALUE қатесі орын алады, егер