KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как найти первое ненулевое значение в строке и вернуть соответствующий заголовок столбца в Excel?

АвторСяоянДата изменения

При работе с данными в Excel часто требуется определить позицию первой ненулевой записи в строке и отобразить соответствующий заголовок столбца. Например, если каждая строка представляет отдельный элемент или человека, а столбцы — периоды времени или категории, важно быстро выяснить, когда для каждой строки впервые появляется значение. Ручной поиск первого ненулевого значения в каждой строке может оказаться утомительным и трудоёмким, особенно по мере роста объёма данных. Автоматизация этого процесса не только значительно повышает эффективность, но и минимизирует риск ошибок, обеспечивая более надёжные аналитические выводы. В этой статье представлены несколько практичных способов решения этой задачи — от универсальных формул Excel до макросов VBA, которые особенно незаменимы при работе с крупными наборами данных или при подготовке регулярных отчётов.

найти первое ненулевое значение и вернуть соответствующий заголовок столбца


синяя стрелка вправо с пузырёмНайдите первое ненулевое значение и верните соответствующий заголовок столбца с помощью формулы

Чтобы быстро определить заголовок столбца, в котором в заданной строке появляется первое ненулевое значение, воспользуйтесь встроенной формулой Excel. Этот подход идеально подходит для небольших и средних наборов данных, где важны мгновенный пересчёт и простота настройки.

1. Выберите пустую ячейку для отображения результата; в данном примере используется ячейка K2.

=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<,>,0,),0))

2.После ввода формулы нажмите клавишу Enter, чтобы подтвердить. Затем выделите ячейку K2 и используйте маркер заполнения, чтобы протянуть формулу вниз по остальным строкам по мере необходимости.

используйте формулу для поиска первого ненулевого значения и возврата соответствующего заголовка столбца

Примечание: В приведённой выше формуле диапазон B1:I1 указывает на заголовки столбцов, которые требуется вернуть, а диапазон B2:I2 представляет данные строки, в которой выполняется поиск первого ненулевого значения.

Если ваши данные начинаются не с первой строки или не с первого столбца, обязательно скорректируйте диапазоны в формуле соответствующим образом. Кроме того, формула работает корректно только при условии, что в каждой анализируемой строке есть хотя бы одно ненулевое значение: если все значения равны нулю, она вернёт ошибку. В таких случаях рекомендуется обернуть формулу в функцию ЕСЛИОШИБКАследующим образом:=IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<,>,0,),0)),"No non-zero"), чтобы вместо ошибки отображалось понятное пользовательское сообщение.

Это формула-ориентированное решение идеально подходит для получения динамических результатов, которые автоматически обновляются при изменении исходных данных. Однако при работе с очень большими наборами данных производительность может снижаться — в таких случаях стоит рассмотреть применение подхода на основе VBA для повышения автоматизации рабочего процесса и сокращения ручных операций.

синяя стрелка вправо с пузырём Используйте макрос VBA для поиска и возврата заголовка столбца первого ненулевого значения в каждой строке

Если вам часто приходится выполнять поиск по множеству строк или большим объёмам данных — или если вы стремитесь автоматизировать этот процесс для повышения эффективности, — отличным решением станет использование макроса VBA. Такой подход особенно выгоден при регулярном формировании отчётов или работе с таблицами, размер которых постоянно меняется: макрос будет находить в каждой указанной строке первое ненулевое значение и возвращать соответствующий заголовок столбца в целевую ячейку.

1. Перейдите на вкладку РазработчикVisual Basic, чтобы открыть окно Microsoft Visual Basic для приложений. (Если вкладка «Разработчик» не отображается, её можно добавить через меню)Файл > Параметры > Настроить ленту.) В редакторе VBA выберите пункт ВставкаМодуль.

2.Скопируйте и вставьте следующий код VBA в новый модуль:

Sub LookupFirstNonZeroAndReturnHeader()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim headerRange As Range
    Dim outputCell As Range
    Dim r As Range
    Dim c As Range
    Dim firstNonZeroCol As Integer
    Dim i As Long
    Dim xTitleId As String
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set ws = Application.ActiveSheet
    Set dataRange = Application.InputBox("Select the data range (excluding headers):", xTitleId, Selection.Address, Type:=8)
    If dataRange Is Nothing Then Exit Sub
    Set headerRange = ws.Range(dataRange.Offset(-1, 0).Resize(1, dataRange.Columns.Count).Address)
    For i = 1 To dataRange.Rows.Count
        Set r = dataRange.Rows(i)
        firstNonZeroCol = 0
        
        For Each c In r.Columns
            If c.Value <> 0 And c.Value <> "" Then
                firstNonZeroCol = c.Column - dataRange.Columns(1).Column + 1
                Exit For
            End If
        Next c
        
        Set outputCell = r.Cells(1, r.Columns.Count + 1)
        
        If firstNonZeroCol > 0 Then
            outputCell.Value = headerRange.Cells(1, firstNonZeroCol).Value
        Else
            outputCell.Value = "No non-zero"
        End If
    Next i
    
    On Error GoTo 0
    MsgBox "Completed! Results are in the column to the right of your data.", vbInformation, "KutoolsforExcel"
End Sub

3. Чтобы запустить макрос, нажмите кнопку Выполнить или клавишу F5. Появится диалоговое окно с запросом на выбор диапазона данных (без заголовков столбцов). После выполнения макроса столбец, расположенный сразу справа от выбранного диапазона, будет заполнен заголовками первого ненулевого значения для каждой строки или сообщением «Нет ненулевых значений», если таковые не найдены.

Этот подход на основе VBA отлично подходит для выполнения повторяющихся задач и идеален для обработки больших объёмов данных, значительно сокращая ручные усилия. Однако убедитесь, что макросы разрешены в вашей среде Excel, и всегда создавайте резервную копию книги перед запуском кода.

Примечание: Если возникают ошибки, убедитесь, что выделение исключает строку заголовков и включает только строки с данными.

снимок экрана kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

  • Интеллектуальное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это доступно через простые команды.
  • Пользовательские формулы: создавайте индивидуальные формулы для оптимизации рабочих процессов.
  • Программирование на VBA: Пишите и внедряйте код VBA легко и без усилий.
  • Анализ формул: Легко разбирайтесь даже в самых сложных формулах.
  • Перевод текста: Ломайте языковые барьеры прямо в ваших таблицах.
Расширьте возможности Excel с помощью инструментов на базе ИИ.Скачать сейчаси ощутите эффективность, как никогда раньше!

Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек