Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

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

Author Xiaoyang Last modified

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

lookup first non-zero value and return corresponding column header


arrow blue right bubble Поиск первого ненулевого значения и возврат соответствующего заголовка столбца с помощью формулы

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

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

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

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

use a formula to lookup first non-zero value and return corresponding column header

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

Если ваши данные начинаются в других столбцах или строках, не забудьте соответствующим образом скорректировать диапазоны в формуле. Кроме того, эта формула работает эффективно, пока в каждой анализируемой строке есть хотя бы одно ненулевое значение; если все значения равны нулю, формула вернет ошибку. В таких случаях рекомендуется обернуть формулу в IFERROR следующим образом: =IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),'Нет ненулевых'), чтобы вместо ошибки возвращалось пользовательское сообщение.

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

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

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

1. Щелкните вкладку Разработчик > Visual Basic, чтобы открыть окно Microsoft Visual Basic for Applications. (Если вкладка Разработчик не видна, вы можете добавить её через Файл > Параметры > Настройка ленты.) В редакторе 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, и всегда создавайте резервную копию книги перед запуском кода.

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

a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

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

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

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: 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.

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