Как в электронной таблице найти строчку не по одному столбцу, а по двум? XLOOKUP умеет искать только по одному, поэтому приходится выкручиваться.
Пример: есть таблица продаж, где в столбцах A и B хранятся дата и идентификатор товара. Нужно найти продажи определённого товара за конкретный день.
Первое решение: создать в исходной таблице вспомогательный столбец C, в котором склеить дату и идентификатор товара. Для склейки используем оператор & (амперсанд):
=A2&B2 (и так для всех строчек)
Теперь можно искать по этому столбцу и доставать необходимые данные, например, из столбца D. Если нужно найти продажи товара 1234567 за сегодня, используем формулу:
=XLOOKUP(TODAY()&"1234567";C:C;D:D)
Второе решение: генерировать этот вспомогательный столбец на лету с помощью ARRAYFORMULA и так же искать по нему:
Мы сделали быстрый офлайн-поиск по всей документации. Открывается через Cmd/Ctrl+/, навигация стрелками, Enter – переход с подсветкой найденного фрагмента. Подхватывает опечатки и кривую раскладку.
Помогает быстро переключаться между статьями и проектами. Работает одинаково в приложении и в докпортале.
--- Gramax – это база знаний с хранением контента в Git в Markdown-файлах и с визуальным редактором. Подробнее о проекте: https://gram.ax/ru
Почти каждый пользователь электронных таблиц рано или поздно сталкивается с задачей провэпээрить таблицу: найти значение в одном столбце и вернуть соответствующее значение из другого столбца. Типичный сценарий: перенести данные из одной таблицы в другую по какому-то идентификатору.
Функция VLOOKUP (ВПР) появилась в 1985 году в самой первой версии Excel и занимала третье место по популярности среди пользователей (после SUM и AVERAGE). За это время она морально устарела, поэтому в 2020 году разработчики Excel добавили новую функцию XLOOKUP. В 2022 году она появилась и в Google Sheets.
Напомню, VLOOKUP принимает на вход четыре параметра:
искомое значение;
ссылку на таблицу (поиск идёт по первому столбцу);
номер столбца с результатами;
тип поиска: точный или приблизительный.
1️⃣ VLOOKUP закладывается на структуру исходной таблицы. Если завтра порядок столбцов поменяется, формула может сломаться. Придётся руками обновлять номер столбца с результатами. XLOOKUP принимает на вход два диапазона и спокойно переживает перемещение любого из них:
2️⃣ Для VLOOKUP столбец с результатами должен располагаться справа от столбца для поиска. Передать третьим аргументом отрицательное число нельзя. XLOOKUP лишён этого ограничения и позволяет доставать результаты слева от столбца для поиска:
=XLOOKUP("needle";B:B;A:A)
3️⃣ При неудачном поиске VLOOKUP возвращает #N/A. Если вместо ошибки хочется выводить что-то другое (например, пустое значение), приходится дополнительно вызывать функцию IFNA. В XLOOKUP можно четвёртым аргументом передать значение, которое будет выводиться при неудачном поиске:
4️⃣ По умолчанию VLOOKUP ищет приблизительное совпадение. Для поиска точного соответствия надо передать FALSE или ноль четвёртым параметром. Часто про это забывают и долго разбираются, почему функция работает не так, как ожидалось. XLOOKUP по умолчанию ищет точное соответствие, помогая избежать ошибок.
5️⃣ Приблизительный поиск VLOOKUP умеет искать только ближайшее меньшее значение. При этом исходная таблица должна быть отсортирована. XLOOKUP в режиме приблизительного поиска позволяет искать как меньшее, так и большее значение. Таблицу сортировать необязательно.
6️⃣ Если подходящих значений в таблице больше одного, VLOOKUP ищет только первое совпадение. XLOOKUP умеет запускать поиск с любого конца и может находить как первое, так и последнее совпадение.
Единственный минус XLOOKUP: функция недоступна в Excel 2019 и более ранних версиях. Да и по-русски называется ПРОСМОТРХ, где Х — это «икс», а не «ха». К вопросу, почему я избегаю русскоязычные названия функций.
В прошлом году было много разговоров о том, что найти работу в ИТ стало намного сложнее. Мол, количество вакансий уменьшается, а откликов - наоборот, только растёт. Как специалист, который старается чувствовать пульс индустрии (в том числе на рынке труда), я решил не полагаться исключительно на общественное мнение и проверить утверждения на цифрах (правда, исключительно аспект с вакансиями).
Используя API HH, я в течение последних 3,5 месяцев отслеживал изменения в количестве открытых вакансий на позиции "системный аналитик" и "бизнес-аналитик" (в соответствии с моей специализацией). Результаты, впрочем, подтвердили озвучиваемый в постах тренд, и поэтому вряд ли кого-либо должны удивить. Однако я всё же решил поделиться с сообществом накопленной статистикой (пусть и небольшой).
Для справки, привожу параметры запроса для выборки:
💀 Когда диаграмма - источник истины, архитектура умирает первой.
📝 Аналитики, использующие PlantUML, Miro, Draw.io, Visio, Structurizer и прочее, забывают что знания в диаграммах - всё равно что код в скриншотах.
Знания должны храниться в виде взаимосвязанных элементов Модели, а диаграммы должны быть лишь их Проекциями. Разработчики ArchiVision.org это прекрасно понимают. Именно это делает систему ArchiVision значительно более эффективным инструментом для хранения знаний об ИТ системах чем все вышеназванные сервисы. При этом, генерируемые ею диаграммы живые, интерактивные и редактируемые. Система также поддерживает горячие клавиши для эффективной работы с моделью и диаграммами. Горячие клавиши позволяют рисовать быстрее, чем большинство перечисленных сервисов, тем более чем писать в PlantUML, Structurizer и аналогичных.
⚡ Ключевое отличия: - 👎 в названных выше инструментах вы редактируете диаграммы; - 👍 в ArchiVision вы работаете с моделью, а диаграммы - это её визуальная проекция, через которую тоже можно развивать модель.
🔄 За счет этого: - 🧠 модель становится единственным источником истины; - 🧱 диаграммы перестают быть хрупким артефактом; - 🧩 структура модели позволяет устранять разночтения, дублирование и рассинхронизацию; - ✅ система способна контролировать ввод и проверять полноту данных; - 🧼 архитектура перестаёт расползаться по версиям и интерпретациям; - ⌨️ навигация и горячие клавиши — это часть работы с моделью, а не удобство интерфейса.
🎥 Это видео - пример того, как сочетание модели, интерактивных диаграмм и горячих клавиш меняет процесс проектирования.
Ну а вот сам канал с видеоинструкциями находится здесь.
Как говорил один детектив: «Лень — двигатель прогресса. А прогресс, как известно, не остановить».
Всем привет! Зовут меня Виталий, автор телеграм канала "Детектив данных", про мой вход в аналитику данных. В бесконечном процессе по оптимизации рабочего пространства понял, что было бы удобно запускать ноутбук без его физического запуска с помощью кнопки, а например с помощью Алисы. А в перспективе вообще убрать ноутбук с рабочего стола. Задача была решена, но не обошлось без нюансов, которыми поделюсь.
Исходные данные: Два ноутбука: рабочий Acer и личный Lenovo Legion. Стоят в правой части стола – всегда закрытые, так как вся работа осуществляется через хаб и внешние устройства.
Включение личного – нужно просто приподнять и можно сразу опускать монитор, при подключенном хабе – через пару секунд рабочий стол загружается. Кстати на Win11, чтобы пропустить момент ввода пин кода – можно с официального сайта Микрософт скачать программу Автологон Включение рабочего – тут удобством и не пахнет: нужно полностью открыть ноутбук нажать кнопку включения, ввести пароль в BitLocker на клавиатуре ноутбука (BT клавиатура не работает) и только тогда можно закрывать ноутбук - появится окно ввода пароля и входа в систему.
Прошерстив интернет нашлось несколько способов решения: - физическое распаивание схемы включения – один из умельцев с ютуба внедрил в цепь питания – геркон, и в результате ноутбук включался при поднесении магнита к определенному месту в крышке – сомнительно но окей - установка скрепки которая физически нажимает на кнопку включения ноутбука, можно запустить ноутбук без открытия крышки – нет, ну это совсем колхоз - Wake on Lan – специальные настройки сетевой карты, где в выключенный ноутбук отправляются спец сигналы от роутера, и при определённой настройке биоса ноутбук будет включаться – уже похоже на правду но как минимум требует провод Ethernet, и определённые настройки сетевой карты – мне не подходит, так как ноутбука два а провод у меня один и идёт к хабу - Wake on AC Power – еще одна настройка в BIOS - вот этот вариант мне понравился – включение при подаче питания – с учётом того, что пол дома у меня работает от Алисы – подумал что в целом можно обойтись обычной умной розеткой, и при выполнении сценария просто выключать-включать розетку через небольшой интервал.
Первая проблема в том, что при выключения розетки – на ноутбук (если внутри блока питания ёмкие конденсаторы) еще какое то время подаётся питание (от 5 до15 секунд +-), это не позволило просто поставить промежуток между выключением и включением розетки. Решение простое и вполне подходит в мой повседневный сценарий– Розетка на ноутбук просто отключаются ночью, а когда нужно включить компьютер - я просто прошу Алису напрямую включить Компьютер (а на самом деле розетку) и ноут спокойно включается без всяких задержек, даже без интернета (розетки подключены через протокол matter ) Настройка BIOS в Lenovo находилась в разделе «Instant boot».
С рабочим компом пришлось повозиться подольше: - Стоял пароль на вход bios – для добавления сценария включения, пришлось обращаться к рабочим айтишникам, - нерабочая клавиатура при вводе кода на BitLocker – проблема в том, что BT драйвера (для клавиатуры) запускаются вместе с системой, а BitLocker запускается до загрузки ОС. Клавиатура по проводу, хоть и работает, но я не очень люблю провода на рабочем столе, и как раз пришлась кстати клавиатура подаренная женой NupHy Field75– в клавиатуре есть радиоканал, дрова которого прекрасно активны и до загрузки ОС. А еще есть макросы для ввода паролей )
Вывод: иногда для решения задачи нужны не только технические знания и пытливый ум. А ещё — жена, которая вовремя дарит подходящие гаджеты. Стол снова идеально чист от проводов. Осталось только понять, куда девать освободившиеся пятнадцать секунд в день, которые я так героически отвоевал. Наверное, на написание этого поста.
В Google Sheets есть две функции, позволяющие производить операции над целыми массивами: ARRAYFORMULA и MAP.
Пусть в столбце A лежит цена товара, а в столбце B — скидка в процентах. Посчитаем финальную цену для всех товаров:
=ARRAYFORMULA(A2:A*(1-B2:B))
Как видно, ARRAYFORMULA позволяет обращаться с массивами как с одиночными ячейками, выполняя любые арифметические (и не только) действия. Под капотом формула работает построчно: сначала обрабатывает первые ячейки столбцов A и B, потом вторые, и т.д. Всего одной формулой мы посчитали финальные цены сразу для всех товаров. Минус такого подхода: когда формула разрастается, становится тяжело разобраться, какие действия с какими столбцами производятся.
Функция принимает на вход неограниченное количество массивов (в нашем случае — два). Далее она последовательно берёт элементы этих массивов, передаёт в функцию LAMBDA под именами, указанными в первых аргументах (price и discount), и выполняет вычисление, переданное последним аргументом (price*(1-discount)). Благодаря явному именованию массивов формула читается понятнее.
Встречаются случаи, когда ARRAYFORMULA в принципе не работает. Например, когда внутри необходимо использовать другую формулу массива.
Пример: пусть для каждого значения из столбца A нужно отфильтровать и склеить через запятую значения из другой таблицы:
=ARRAYFORMULA(JOIN(", ";FILTER(D2:D;E2:E=A2:A)))
Формула не работает, т.к. FILTER получает вторым аргументом сравнение двух массивов и не понимает, что от него требуется.
MAP же успешно справляется с этой задачей, т.к. передаёт в лямбда-функцию конкретное значение, по которому можно отфильтровать другую таблицу:
Российские сотрудники в рамках штатного расписания в январе будут работать всего 15 дней, а отдыхать — 16. Это самый нерабочий месяц за последние 5 лет.
Пусть в столбце A лежит массив переменной длины (например, результат работы FILTER или IMPORTRANGE в Google Sheets). В столбце B мы хотим написать формулу массива, например, удвоить все значения столбца A.
Можно применить формулу ко всему столбцу A:
=ARRAYFORMULA(2*A2:A)
Но так возникнут лишние нули там, где данные закончились. Вопрос, как применить формулу только к диапазону с данными, учитывая, что количество строк может в любой момент поменяться?
Есть такое решение:
=ARRAYFORMULA(2*OFFSET(A2;0;0;COUNTA(A2:A)))
Функция COUNTA считает количество непустых значений в столбце.
Функция OFFSET возвращает диапазон нужного размера, начиная с указанной ячейки.
Из первого пункта следует важное ограничение: формула работает только при отсутствии пустых значений в данных, иначе функция COUNTA неправильно посчитает высоту диапазона.
🎄Уважаемые Хабровцы, коллеги, друзья и партнеры! 🎉
В последние рабочие дни уходящего 2025 года команда SSP SOFT поздравляет вас с наступающим Новым 2026 годом и Рождеством! Самое время подвести итоги, ощутить атмосферу праздника и с уверенностью посмотреть вперед.
🚀 Нашим заказчикам Пусть 2026 год принесет устойчивый рост, новые рынки и технологические решения, которые действительно работают. Желаем, чтобы созданные вместе с SSP SOFT продукты были надежными, масштабируемыми и помогали бизнесу расти и развиваться дальше. Мы ценим доверие и рады быть вашим технологическим партнером 📈
💻 Компаниям, работающим с нами в формате аутсорсинга и Workforce-as-a-Service Готовы направить к вам сильные, мотивированные команды и специалистов, которые быстро встраиваются в процессы, понимают задачи бизнеса и усиливают его изнутри. Пусть люди остаются вашим главным конкурентным преимуществом 💪
🤝 Нашим партнерам Пусть проекты складываются, бюджеты сходятся, а наша совместная работа напоминает хорошо спроектированную систему — без лишней сложности и с понятным результатом. Спасибо за сотрудничество и совместное движение вперед 🚀
🏢 Немного о нас В 2025 году для SSP SOFT мы переехали в новый офис в Москве — в самом центре города, рядом с Красной площадью — чтобы активнее развивать сотрудничество с федеральными компаниями. 📍Весь год у нас было много вакансий, в том числе в этот новый офис. Подробности о вакансиях на нашей странице ХХ.ру
👏 Нашей команде Отдельная благодарность всем сотрудникам SSP SOFT за профессионализм, вовлеченность и ответственность. Пусть 2026 год принесет вам интересные задачи, развитие, баланс между работой и личной жизнью и уверенность в завтрашнем дне. Мы искренне рады работать вместе с вами 🤝
С нами — как дома!
🎄 С наилучшими пожеланиями в Новом году, Команда SSP SOFT 🌟ssp-soft.com 🌟
Пусть есть список однотипных объектов: товаров, заказов или сотрудников. У каждого элемента есть идентификатор. Как предотвратить ситуацию, когда при заполнении таблицы кто-нибудь добавит элемент дважды? Другими словами, как гарантировать уникальность идентификаторов?
В sql для этого используется PRIMARY KEY или UNIQUE, в электронных таблицах встроенных инструментов нет. Как вариант, можно реализовать подсветку дубликатов с помощью условного форматирования и функции COUNTIF:
Формат → Условное форматирование Применить к диапазону: A2:A Правила форматирования → Ваша формула =AND(LEN(A2);COUNTIF(A$2:A;"="&A2)>1) Цвет фона: красный
Как работает формула:
LEN(A2) проверяет, что ячейка заполнена;
COUNTIF(A$2:A;"="&A2) считает количество ячеек, совпадающих с текущей. Если оно больше одного, срабатывает условное форматирование.
В результате при вводе идентификатора, который уже присутствует в списке, дубликаты будут подсвечиваться красным.
У людей есть простая пословица: «Кто не помнит прошлого — обречён повторять его». В цифровых системах это работает буквально. Память — это не архив. Это фундамент ответственности. Когда при обновлениях исчезают старые ссылки, Doc-ID, номера обращений, история решений и причины, по которым они были приняты, система теряет не «удобство», а способность отвечать за свои действия. В такой среде ИИ не делает систему умнее. Он лишь ускоряет воспроизведение ошибок, потому что больше не видит, почему раньше было сделано именно так. Ответ есть — основания нет. Решение есть — истории нет. На практике это быстро бьёт по всем: пользователи не могут проверить или оспорить отказ; инженеры поддержки заново разбирают уже решённые проблемы; доверие к системе исчезает, даже если интерфейс стал «красивее». Поэтому проблема здесь не в ИИ и не в новом дизайне. Проблема — в архитектурной амнезии, потере связности опыта. Отсюда следуют простые, но жёсткие принципы. Приоритет связности. Никакое обновление не может считаться завершённым, если оно разрушает семантические связи с прошлым: стабильные ID, историю изменений, причины принятых решений. ИИ — навигатор, а не оракул. ИИ должен помогать ориентироваться в накопленном опыте. Ответ без ссылки на основание — это не помощь, а догадка, и он должен прямо маркироваться как неверифицированный. Защита опор реальности. Красота интерфейса и скорость поиска не могут быть важнее ответственности. Ответственность — это способность системы доказать свою правоту, опираясь на факты собственного прошлого. Современность системы определяется не количеством «умных» функций, а тем, сохраняет ли она память о собственных решениях и умеет ли за них отвечать. ИИ без памяти — это не интеллект, а ускоритель деградации. А разговор об интеллекте — это уже следующий шаг.
В новостях нам чуть ли не каждую неделю рассказывают о том, что очередная новая AI-моделька начисто победила людей в каком-нибудь супер-невозможном бенчмарке – а значит, нас ждет полная доминация жестянок уже не далее, чем завтра. И меня тут внезапно настигло чувство дежавю с тем, как я два года назад изучал греческий (потерпите, сейчас всё станет понятно).
В 2024 году я чуть больше чем за полгода занятий с репетитором подготовился и сдал экзамен по греческому языку сразу двух уровней A2 и B1 на «отлично» (или, как говорят греки, «αρίστα»).
Но есть нюанс! Говорить/писать на греческом более-менее свободно я так и не могу. Потому что задачи «сдать экзамен по языку» и «выучить язык» хоть и являются частично пересекающимися, но они далеко не идентичны. И в условиях ограниченных ресурсов, решить первую задачу сверх-оптимизацией получаемых знаний и навыков конкретно под узкую цель «получить все нужные галочки на экзамене» – это гораздо легче, чем прямо «по-честному» осваивать весь широкий набор языковых навыков.
Похожая проблема существует и в мире бенчмарков для оценки искусственного интеллекта. Базовая логика у них понятна: «давайте возьмем какой-нибудь набор задач, которые люди более-менее умеют решать своим мясным умишком с успешностью в среднем эдак 80% – и, если AI их в этом обгонит, то можно заключить, что он уже умнее человека!»
Загвоздка здесь в том, что как только такого рода бенчмарк публикуют, и он привлекает к себе общественное внимание – достичь цели «набрать самый высокий результат и победить на этом фестивале писькомерства между альтмасками и цукербринами» оказывается гораздо проще не через длинный путь «делаем сверх-умную модель, которая вообще всё делает оче-оче круто, в том числе и этот набор задач», а через банальное задрачивание модели на конкретный тип задач в этом тесте.
К чему это я? Тут нейросети на днях успешно забороли очередной «непобедимый бенчмарк по креативности, который уж точно может решить только по-настоящему генерализованный интеллект не хуже человеческого» (читайте подробное описание сути дела у Игоря Котенкова). Значит ли это, что, наконец, «AGI achieved»? Ну, э-э, скорее нет, чем да (по причинам, описанным выше).
Отдельный здесь кек – это то, что для решениях самых сложных задач в такого рода бенчмарках нейросети уже не просто кидают на амбразуру с наказом «ну ты это, постарайся там». Нет, им сейчас делают целый обвес специальных правил, как правильно методологически раскалывать такие орешки. Типа: ты сначала нагенерируй 100 разных ответов на этот вопрос, потом каждый ответ попробуй заново подставить к задачке и прикинь «а не херню ли я сделала?», а потом еще пусть итоговое решение отберет из прошедших предыдущие фильтры вообще другая строгая нейросеть-критик.
И тут уже возникает вопрос: а можно ли считать, что тут действительно валидным будет утверждение «модель XXX решила бенчмарк YYY»? Ведь, в каком-то смысле, тут не сама модель придумала вот этот весь алгоритм – а кожаные датасаентисты сами его подобрали таким образом, чтобы максимизировать получающийся результат.
Физик-теоретик решил выяснить, насколько реалистична завязка фильма «Один дома» с оставленным дома Кевином. Оказывается, шансы того, что сразу несколько людей лягут спать в 23:00 и смогут проспать подъем в 8:00 перед большим перелётом стремятся к нулю — вероятность всего 0,13%, то есть, если Кевина забыли специально, то это маловероятное, но абсолютно правдоподобное событие.
В большинстве случаев результатом вычисления формулы в электронной таблице является какое-то значение. Но иногда необходимо просто оставить ячейку пустой. В Google Sheets для этого достаточно передать в функцию пустой аргумент:
=IF(A1;A1*100;) — если другая ячейка заполнена, то произвести вычисление, в противном случае оставить ячейку пустой.
=XLOOKUP("needle";A:A;B:B;) — если needle найден в столбце A, вывести соответствующие значение из столбца B, в противном случае оставить ячейку пустой.
Точка с запятой перед закрывающей скобкой обязательна, без неё первая формула вернёт FALSE, вторая — #N/A.
Занятно, что в Excel это не работает. Там в принципе нельзя написать формулу, которая вернёт пустое значение. Приходится возвращать пустой текст (""):
=ЕСЛИ(A1;A1*100;"")
Но это полурешение, т.к. пустой текст не то же самое, что пустое значение. Например, навигация по таблице, позволяющая быстро перемещаться между блоками данных, «перепрыгивает» ячейки с пустым значением, но «спотыкается» о ячейки с пустым текстом.
Знаете вот когда сделал что-то, что тебе самому очень нравится, хочется показывать это всем - друзьям, родным, коллегам и даже рассказать при случае попутчику в метро) так и мы ждём сегодняшний вебинар про итоги года, чтобы поделиться с вами всем классным, что сделали в 2025 году и рассказать что задумали в 2026. Буквально спрашиваем друг у друга "Мы уже приехали?" «А сколько уже зарегистрировалось? А сейчас?»:)
Мы будем очень рады, если вы придете!
Вот ссылка, где проведем встречу) приходите, пожелаем друг другу счастливого Нового года❤️
Знаете вот когда сделал что-то, что тебе самому очень нравится, хочется показывать это всем - друзьям, родным, коллегам и даже рассказать при случае попутчику в метро) так и мы ждём сегодняшний вебинар про итоги года, чтобы поделиться с вами всем классным, что сделали в 2025 году и рассказать что задумали в 2026. Буквально спрашиваем друг у друга "Мы уже приехали?" «А сколько уже зарегистрировалось? А сейчас?»:)
Мы будем очень рады, если вы придете!
Вот ссылка, где проведем встречу) приходите, пожелаем друг другу счастливого Нового года❤️
Компания «Форсайт» представляет новый релиз своего флагманского программного продукта - «Форсайт. Аналитическая платформа» 10.10!
Новая версия 10.10 – это STS-релиз для быстрого развития (Short Term Support), промежуточный выпуск, который включает новые функции перед их интеграцией в релиз с долгосрочной поддержкой. В версии 10.10 много новых возможностей для визуализации данных в веб-приложении. Мы сделали удобнее инструмент Self-Service BI – информационные панели: • добавили гибкую настройку элементов управления • реализовали настройку параметров вложенных объектов • добавили в табличный визуализатор условное форматирование и закрепление строк
Мы расширили возможности регламентных отчетов и форм ввода в вебе: • стало удобнее работать с диаграммами и формулами • мастер функций пополнился новыми функциями • расширены возможности настройки печати • при вводе формулы в строку формул и ячейку таблицы появилось отображение подсказок • реализовано отображение окна подтверждения перед сохранением и отменой изменённых данных
Что еще нового в релизе 10.10? • расширены возможности администрирования приложений • расширена функциональность менеджера обновлений • реализован новый API платформы для разработки прикладного приложения в системных сборках: Dashboard, Express, Fore, Metabase, RDS, WebForms
Напоминаем, что начиная с выпуска «Форсайт. Аналитическая платформа» 10.11 LTS (апрель 2026 года): • в стандартной поставке будут отсутствовать настольное приложение для настройки платформы и Конструктор бизнес-приложения версии 9.x; • будет прекращена поддержка платформы на Astra Linux SE 1.7 в связи с прекращением её поддержки производителем. Подробнее о новой версии читайте здесь.
Как быстро перейти в конец текущего столбца с данными?
Достаточно нажать Ctrl + ↓ (⌘ + ↓).
Ctrl + ↑ (⌘ + ↑) перемещает в начало текущего столбца.
Ctrl + → (⌘ + →) переносит в конец текущей строки, а Ctrl + ← (⌘ + ←) — в начало.
Важно: если в столбце есть пустые значения, курсор будет прыгать не в конец столбца, а на последнюю заполненную строку текущего блока данных. При повторном нажатии он перепрыгнет на первую заполненную строку следующего блока данных и т.д.