среда, 21 сентября 2016 г.

12 функций Excel, о которых должен знать каждый SEO-специалист



В этой ста­тье Вла­ди­мир Шван­ский рас­ска­зы­вает о том, как эффек­тивно исполь­зо­вать Excel в нашей seo-работе.
Когда меня впер­вые посе­тила мысль напи­сать ста­тью о связке Excel + SEO, передо мной встала дилемма: о чём писать, чтобы не про­слыть «капи­та­ном Оче­вид­ность» и в то же время не углуб­ляться в нюансы спе­ци­фи­че­ских инстру­мен­тов, кото­рые мно­гие SEO-спе­ци­а­ли­сты не исполь­зуют в прин­ципе. Я решил пойти самым вер­ным путем: опи­сать методы реше­ния с помо­щью Excel тех SEO-задач, кото­рые я сам решаю еже­дневно.
curso_excell
Но сперва — несколько слов о том, почему важно исполь­зо­вать пра­виль­ные инстру­менты для реше­ния тех или иных задач. Пер­вое, что бро­са­ется в глаза, когда ты захо­дишь на про­филь­ный форум или SEO-блог — про­блема низ­кой тех­ни­че­ской под­ко­ван­но­сти моло­дых спе­ци­а­ли­стов. Такие рас­про­стра­нён­ные в прак­ти­че­скомSEO про­блемы, как сор­ти­ровка и ана­лиз мас­си­вов дан­ных, раз­лич­ные вари­анты работы со стро­ками, агре­га­ция дан­ных и, наобо­рот, их раз­би­тие — всё это боль­шин­ство веб-масте­ров выпол­няет вруч­ную, тратя огром­ное коли­че­ство вре­мени на моно­тон­ные, одно­об­раз­ные и легко авто­ма­ти­зи­ру­е­мые задачи.
Одни пыта­ются найти гото­вое узко­функ­ци­о­наль­ное реше­ние для своей про­блемы: «Помо­гите найти про­грамму для услов­ного сло­же­ния зна­че­ний строк», «Под­ска­жите про­грамму, чтобы выде­лить домен со списка» и т. д. Дру­гие пишут скрипты-реше­ния для всех про­блем, с кото­рыми стал­ки­ва­ются. Тре­тьи исполь­зуют доро­гие про­фес­си­о­наль­ные про­граммы (Deductor для фор­ми­ро­ва­ния сре­зов дан­ных, TextPipe для работы со стро­ками и т.п.) для довольно-таки базо­вых опе­ра­ций.
А ведь боль­шин­ство наших про­блем решает Microsoft Excel (как и Google SpreadSheet, и LibreOffice). Далее — яркие тому дока­за­тель­ства.

Функция № 1: ДЛСТР (англ LEN)

При­ме­ня­ется для опре­де­ле­ния длины тек­сто­вого содер­жи­мого ячейки (или тек­ста, задан­ного в фор­муле). При­ме­не­ний, как вы пони­ма­ете, масса. Напри­мер, изме­ре­ние длины анко­ров или мета-тегов на пред­мет пре­вы­ше­ния лимита (для при­мера возь­мём 70 зна­ков для title)
ES1
Доба­вим услов­ное фор­ма­ти­ро­ва­ние для нагляд­но­сти:
ES2
ES3
Строки с дли­ной меньше допу­сти­мого зна­че­ния выде­ляем одним цве­том, больше — дру­гим.
ES4
ES5
И полу­чаем:
ES6
Не очень худо­же­ственно, зато наглядно. Осо­бенно когда дело каса­ется несколь­ких сотен/тысяч мета-тегов. По такому же прин­ципу можно добав­лять новые пра­вила для пара­мет­ров description.

Функция № 2: СЖПРОБЕЛЫ (TRIM)

Уда­ляет все про­белы, кроме оди­нар­ных между сло­вами из содер­жи­мого ячейки или задан­ного фраг­мента тек­ста.
На прак­тике функ­ция полезна, когда при копи­ро­ва­нии всего мас­сива тек­ста появ­ля­ются про­белы до/после/между слов, созда­ю­щие про­блемы при даль­ней­шей обра­ботке.

Функции № 3: ПРОПИСН (UPPER), СТРОЧН (LOWER)

Транс­фор­ми­рует содер­жи­мое строки (или задан­ного фраг­мента) в про­пис­ные или строч­ные буквы.

Функция № 4: ПРОПНАЧ (PROPER)

Пре­об­ра­зует пер­вые буквы каж­дого слова в строке в про­пис­ные.
Забавно, изна­чально я не хотел добав­лять эту функ­цию. Каза­лось бы, кому нужно транс­фор­ми­ро­вать первую букву каж­дого слова? А парал­лельно с напи­са­нием ста­тьи воз­никла необ­хо­ди­мость про­ве­рить частот­ность группы клю­чей, содер­жа­щих назва­ния ком­па­ний.
Как известно, при про­верке основ­ными сер­ви­сами (как след­ствие — и про­грам­мами) все буквы запроса при­во­дятся в строч­ный вид. Итог: таб­лица на несколько тысяч строк вида ЗАПРОС + КОМПАНИЯ, где назва­ние ком­па­нии при­ве­дено с малень­кой буквы. Для даль­ней­шего исполь­зо­ва­ния было необ­хо­димо при­ве­сти всё в чело­ве­че­ский вид.
Выход:
  1. Рас­ще­пил мас­сив по 2-м столб­цам (запрос и назва­ние) с помо­щью функ­цииДан­ные > Текст по столб­цам.
  2. При­ме­нил функ­цию ПРОПНАЧ к столбцу с назва­ни­ями ком­па­ний.
  3. Про­из­вёл сцепку с пер­вым столб­цом.
Дан­ное реше­ние про­блемы не един­ствен­ное из воз­мож­ных, но точно самое про­стое.

Функция № 5: СЦЕПИТЬ (текст1;текст2;текст3…) (англ. CONCATENATE)

По-моему, это наи­бо­лее полез­ная в прак­ти­че­ском SEO функ­ция. СЦЕПИТЬ поз­во­ляет объ­еди­нить содер­жи­мое отдель­ных тек­сто­вых бло­ков в одну строку. Это может быть как про­стая сцепка 2-х ячеек, так и более слож­ный вари­ант с под­став­ле­нием тек­сто­вых бло­ков непо­сред­ственно в фор­мулу.
При­мер: допу­стим, вам нужно отпра­вить ссылки с 500 не совсем каче­ствен­ных доме­нов в инстру­мент Disavow Links. Син­так­сис инстру­мента пред­по­ла­гает фор­мат вида domain:ваш_домен.com.ua. Что делать? Про­пи­сы­вать все 500 строк руками? Конечно же, нет. Всё, что вам нужно — это напи­сать:
=СЦЕПИТЬ("domain:";адрес_ячейки)
А затем рас­тя­нуть фор­мулу на весь стол­бец.
ES7
Еще один при­мер: у вас есть стол­бец с URL и стол­бец с анко­рами. Нам нужно сфор­ми­ро­вать пол­но­цен­ную ссылку сле­ду­ю­щего вида:
Это несложно, однако тут есть свои нюансы. Заклю­ча­ются они в исполь­зо­ва­нии кавы­чек в тек­сто­вом блоке, пред­ше­ству­ю­щем ссылке (и в блоке, иду­щем сразу за ней). Фор­мула из преды­ду­щего при­мера не сра­бо­тает из-за пута­ницы в одинарных/двойных кавыч­ках.
Непра­вильно:

Варианты решения

1. Несе­рьез­ный (отсут­ствует про­фес­си­о­наль­ный вызов)
Делаем два допол­ни­тель­ных столбца (или ячейки) с дан­ными (см. скрин­шот ниже):
Вме­сто пер­вого тек­сто­вого блока в фор­муле исполь­зуем ссылку на первую ячейку, вме­сто вто­рого — на вто­рую. В резуль­тате полу­чаем:
=СЦЕПИТЬ(адрес_ячейки_с_началом;адрес_ячейки_с_URL;адрес_замыкающей ячейки;адрес_ячейки_анкора;"")
ES8
В слу­чае, если вы ука­зы­вали кон­крет­ные ячейки, а не столбцы, не забудьте задать абсо­лют­ные адреса:
$A$1
ES9
2. Серьез­ные (при­сут­ствует про­фес­си­о­наль­ный вызов)
2.1 Исполь­зуем оди­нар­ные кавычки
Пишем:
ES10
Хотя син­так­сис ссы­лок с оди­нар­ными кавыч­ками и явля­ется валид­ным, его при­ме­не­ние не совсем кано­нично.
2.2 Исполь­зуем сим­вол кавы­чек (chr(34), символ(34))
У двой­ных кавы­чек есть циф­ро­вой код, а зна­чит, мы можем выве­сти их с помо­щью функ­ции chr (в рус­ской вер­сии «сим­вол»).
ES11

Функция № 6: СЧЁТЕСЛИ (диапазон;критерий) (англ. COUNTIF)

Под­счи­ты­вает коли­че­ство ячеек внутри диа­па­зона, удо­вле­тво­ря­ю­щих задан­ному кри­те­рию. Напри­мер, вы хотите поверх­ностно оце­нить раз­бав­лен­ность анкор­ного листа сайта URL’ами. Чтобы никого не оби­жать, возь­мём не реаль­ный анкор лист, а выду­ман­ный. Напри­мер:
ES12
Чтобы при­ки­нуть про­цент URL-раз­бавки анкор-листа, посчи­таем все вхож­де­ния домена нашего сайта (а именно domen.ru) в анкоры. Для этого вве­дем фор­мулу:
СЧЁТЕСЛИ(A1:A9;"domen.ru")
ES13
Странно, пока­зы­вает ноль. Хоть вроде бы вхож­де­ние домена в анко­рах встре­ча­ется. Дело в том, что, в отли­чие от функ­ции ПОИСК (о ней — далее), кри­те­рий для СЧЁТЕСЛИ необ­хо­димо зада­вать явно и чётко. В нашем слу­чае в списке нет анкора domen.ru. Для ослаб­ле­ния кри­те­риев исполь­зу­ется либо звёз­дочка (любое коли­че­ство сим­во­лов), либо знаки вопроса (одна про­из­воль­ная буква). Для наших целей больше подой­дёт звёз­дочка (она же «асте­риск»).
=СЧЁТЕСЛИ(A1:A9;"*domen.ru*")
ES14
Полу­чи­лось! Ну, и раз уж мы нашли этот пока­за­тель, заодно можем посчи­тать и отно­си­тель­ный вес анко­ров с вхож­де­нием URL по отно­ше­нию к общему кол-ву анко­ров.
=СЧЁТЕСЛИ(A1:A9;"*domen.ru*")/СЧЁТЗ(A1:A9)
ES15
Вни­ма­тель­ный чита­тель, конечно, заме­тит, что функ­ция СЧЁТЗ счи­тает только непу­стые ячейки. В слу­чае выгрузки с сер­виса ана­лиза беклин­ков и боль­шого анкор-листа, полу­чен­ный нами резуль­тат будет некор­рект­ным. К сча­стью, в Excel также есть функ­ция под­счёта и пустых ячеек в диа­па­зоне, нося­щая кра­си­вое назва­ние СЧИТАТЬПУСТОТЫ (англ. COUNTA).
Итого, наш финаль­ный вари­ант:
=СЧЁТЕСЛИ(A1:A9;"*domen.ru*")/(СЧЁТЗ(A1:A9)+СЧИТАТЬПУСТОТЫ(A1:A9))
Готово.

Функция № 7: СУМЕСЛИ (диапазон;критерий;диапазон_для_сложения) (англ.SUMIF)

Прин­цип такой же, как и в преды­ду­щем при­мере. Глав­ное отли­чие: два пара­метра с диа­па­зо­нами. Пер­вый — для при­ме­не­ния кри­те­рия, вто­рой — для при­ме­не­ния сло­же­ния зна­че­ний.

Функции № 8: ЛЕВСИМВ (текст;количество знаков) (англ. (LEFT), ПРАВСИМВ (текст;количество знаков) ( англ. RIGHT)

Воз­вра­щают задан­ное коли­че­ство зна­ков слева (или справа). Как пра­вило, исполь­зу­ются в усто­яв­шейся связке с функ­цией ПОИСК.

Функция № 9: ПОИСК (искомый фрагмент, просматриваемый текст,начальная позиция) (англ. SEARCH)

Воз­вра­щает номер вхож­де­ния иско­мой под­строки в общую строку. Напри­мер, при­ме­не­ние сле­ду­ю­щей фор­мулы воз­вра­тит «2», так как буква «п» вхо­дит в слово «опти­ми­за­ция» на вто­рой пози­ции:
=ПОИСК ("п";"оптимизация")
Оче­видно, что само по себе зна­ние о пози­ции вхож­де­ния под­строки явля­ется мало­по­лез­ным даже в SEO 🙂
В моей прак­тике исполь­зо­ва­ние связки ЛЕВСИМ + ПОИСК (или ПРАВСИМВ + ПОИСК) встре­ча­лось доста­точно редко. Более того, пока я пишу опи­са­ния и при­меры этих функ­ций, в голове то и дело мель­кает афо­ризм:
У вас есть про­блема. Вы решили исполь­зо­вать регу­ляр­ные выра­же­ния, чтобы её решить. Теперь у вас две про­блемы.
Ведь, как известно, «нет ничего более бес­по­мощ­ного, без­от­вет­ствен­ного и испор­чен­ного, чем сеош­ник, при­бег­нув­ший к функ­циям поиска по под­строке».
Тем не менее, рас­смот­рим при­мер: у нас есть спи­сок URL-ов, и нам необ­хо­димо выде­лить из них непо­сред­ственно домен.
ES16
Будем сле­до­вать такой логике: нам надо «найти» точку непо­сред­ственно на слеше после домена, после этого вырвать кусок строки слева — с нуле­вой точки до най­ден­ной нами точки конца домена. Разо­бьем задачу на под­за­дачи.
1.
Что ищем? Слеш. Где ищем? В ячейке с URL. С какой пози­ции ищем? Как мини­мум, с вось­мой, чтобы исклю­чить началь­ные слеши.
Итог:
=ПОИСК("/";ячейка_с_URL;8)
ES17
2.
Выде­лим под­строку с доме­ном: с начала строки до точки вхож­де­ния слеша.
=ЛЕВСИМВ(ячейка_URL;ПОИСК("/";ячейка_URL;8))
ES18
При опре­де­лен­ной сно­ровке с тек­сто­выми функ­ци­ями Excel можно тво­рить насто­я­щие чудеса.

Функция № 10: ВПР (искомое_значение, таблица, номер_столбца, тип_совпадения) (англ. VLOOKUP)

Кратко суть функ­ции опи­сать сложно, а в офи­ци­аль­ной справке при­ве­дено абсо­лютно непо­нят­ное объ­яс­не­ние. По сути, это «состы­ковка» зна­че­ний раз­ных таб­лиц на осно­ва­нии ана­лиза дан­ных в ячей­ках. Рас­смот­рим, как это рабо­тает на оче­ред­ном вымыш­лен­ном при­мере. Пусть у нас будет спи­сок ссы­ла­ю­щихся на наш сайт доме­нов, анко­ров их ссы­лок, ТИЦ и PR этих сай­тов.
ES19
Как мы видим, поря­док сай­тов в этих двух таб­ли­цах раз­нится. Без исполь­зо­ва­ния функ­ций пере­не­сти дан­ные из вто­рой таб­лицы в первую, кроме как «руками», невоз­можно. Попро­буем исполь­зо­вать функ­цию ВПР.
=ВПР(A2;F2:H11;2;ЛОЖЬ)
ES20
Пер­вый пара­метр, А2, опре­де­ляет, по какому зна­че­нию мы ищем сов­па­де­ния. В нашем слу­чае нам надо «состы­ко­вать» таб­лицу по отдель­ным доме­нам.
  • Вто­рой пара­метр, F2:H11 — это таб­лица с «эта­ло­нами». То есть та, где мы ищем.
  • Тре­тий пара­метр, 2 — номер столбца в этой «эта­лон­ной» таб­лице, из кото­рого мы берем зна­че­ния. Слева-направо, в слу­чае с «ТИЦ», зна­че­ние «2».
  • Чет­вёр­тый пара­метр (самое важ­ное), ЛОЖЬ — тип сов­па­де­ния. Здесь таится одна из самых боль­ших слож­но­стей этой функ­ции.
ЛОЖЬ озна­чает, что мы ищем точ­ное сов­па­де­ние содер­жи­мого ячейки в таб­лице с эта­ло­нами. ИСТИНА же озна­чает, что при отсут­ствии точ­ного сов­па­де­ния будет исполь­зо­вано бли­жай­шее к нему по убы­ва­нию. Также при исполь­зо­ва­нии ИСТИНЫ реко­мен­дую про­из­во­дить сор­ти­ровку столбца по воз­рас­та­нию, иначе резуль­тат может быть некор­рект­ным. Кстати, в том слу­чае, если в эта­лон­ной ячейке иско­мая ячейка встре­ча­ется несколько раз, будет исполь­зо­вано пер­вое зна­че­ние.
ES21
Рабо­тает! Рас­тя­нем фор­мулу на весь стол­бец и дело в шляпе? Нет. Мы задали адрес таб­лицы как отно­си­тель­ный, то есть при рас­тя­ги­ва­нии фор­мулы фокус с эта­лон­ной таб­лицы будет сме­щаться вниз на пустые ячейки. Чтобы это испра­вить, исполь­зуем:
=ВПР(A2;$F$2:$H$11;2;ЛОЖЬ)
ES22
Рабо­тает. Теперь для сосед­него столбца:
ES23
Готово. А теперь перей­дём непо­сред­ственно к встро­ен­ному функ­ци­о­налу про­граммы.
Здесь без­услов­ными лиде­рами по полез­но­сти для SEO-спе­ци­а­ли­ста явля­ются 2 функ­ции: очистка от дуб­лей и раз­би­тие дан­ных по столб­цам по раз­де­ли­телю.

Функция № 11: Данные > Удаление дубликатов (Data > Remove Duplicates)

Поз­во­ляет очи­стить спи­сок от дуб­лей.
Допу­стим, у нас есть спи­сок доме­нов на 1200 строк. Как вари­ант можно попро­бо­вать найти и убрать дубли «руками», можно отсор­ти­ро­вать спи­сок по алфа­виту и уда­лить «руками» с уже намного мень­шими уси­ли­ями, исполь­зо­вать мак­рос для Excel, исполь­зо­вать софт по работе с клю­че­выми сло­вами (по умол­ча­нию уда­ляет дубли), исполь­зо­вать паб­лик-скрипты или онлайн-сер­висы. Понятно, что если коли­че­ство строк боль­шое (напри­мер, более 1 048 576 строк для Excel), вари­ант со спе­ци­а­ли­зи­ро­ван­ным соф­том или скрип­тами явля­ется един­ственно воз­мож­ным. Но если строк меньше гра­нич­ного мак­си­мума, Excel рабо­тает на ура.
Итак, на старте имеем 1266 доме­нов + aweb.ua:
ES24
Кли­каем на шапке столбца, чтобы выде­лить его цели­ком (как вари­ант — тянем выде­ле­ние руками или, клик­нув на пер­вой ячейке с содер­жи­мым, нажи­маем Ctrl+A). Весь наш спи­сок дол­жен быть выде­лен.
Пере­хо­дим во вкладку «Дан­ные» и нахо­дим пункт меню «Уда­лить дуб­ли­каты».
ES25
ES26
Кли­каем «Ок».
ES27
То же самое можно сде­лать и с помо­щью абсо­лютно бес­плат­ного инстру­мента Google Docs Spreadsheet. Также возь­мём спи­сок доме­нов, часть из кото­рых дуб­ли­ру­ется. Для уда­ле­ния дуб­лей исполь­зуем функ­цию:
= UNIQUE (массив)
Так как мас­сив дан­ных у нас лежит в столбце A, в ячейку сосед­него столбца вста­вим фор­мулу:
=UNIQUE(A1:A841)
Готово. В стол­бец B авто­ма­ти­че­ски зальётся мас­сив уни­каль­ных строк. Фор­мулу рас­тя­ги­вать не надо, всё реа­ли­зо­вано через функ­цию CONTINUE.

Функция № 12: Данные > Текст по столбцам (Data > Text to Columns)

Крайне полез­ная функ­ция, кото­рая поз­во­ляет раз­би­вать раз­лич­ные мас­сивы на состав­ля­ю­щие по отдель­ным столб­цам. Также поз­во­ляет задать любой раз­де­ли­тель на ваш выбор (слеш, точку, запя­тую и т.п.). Напри­мер, мы можем без исполь­зо­ва­ния регу­ляр­ных выра­же­ний и функ­ций поиска по строке легко и быстро извлечь домены из списка раз­лич­ных URL.
Допу­стим, у нас есть мас­сив дан­ных с раз­де­ли­те­лем вида «пайп» (вер­ти­каль­ная черта).
ES28
Нахо­дим во вкладке «Дан­ные» пункт «Текст по столб­цам». Кли­каем, пред­ва­ри­тельно выде­лив нуж­ный нам мас­сив дан­ных. Появ­ля­ется «Мастер рас­пре­де­ле­ния тек­стов по столб­цам»
ES29
ES30
Жмём «Далее». На вто­ром шаге отме­чаем тип раз­де­ли­теля «Дру­гой» и встав­ляем туда сим­вол вер­ти­каль­ной черты.
ES31
На сле­ду­ю­щем шаге не забудьте выста­вить зна­че­ние в поле «Поме­стить в», иначе стол­бец с дан­ными пере­за­пи­шется (хотя в 99% слу­чаев именно это нам и нужно).
ES32
Готово! Несмотря на всю кажу­щу­юся про­стоту, раз­бивка на столбцы по задан­ному раз­де­ли­телю явля­ется одной из наи­бо­лее часто исполь­зу­е­мых и полез­ных SEO-функ­ций про­граммы.
На этом всё. В даль­ней­шем я пла­ни­рую напи­сать боль­шую ста­тью по исполь­зо­ва­нию свод­ных таб­лиц Excel в SEO — тема не менее инте­рес­ная и объ­ем­ная, чем затро­ну­тая сего­дня. А пока наде­юсь, что дан­ный мате­риал спа­сёт не один деся­ток веб-масте­ров от бес­смыс­лен­ной траты вре­мени на рутин­ные задачи и не только откроет для вас дру­же­ствен­ный мир Excel, но и вдох­но­вит на даль­ней­шие поиски реше­ний по авто­ма­ти­за­ции работы.

0 коммент.:

Отправить комментарий