Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Игнорировать пустые строки при выводе результата - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Игнорировать пустые строки при выводе результата
IvanBezdomny Дата: Четверг, 11.05.2023, 21:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Доброго времени, уважаемые форумчане! С данной темой обращался на дружественном форуме Планета Excel. Прошу вас оказать помощь в корректировке массивных формул в листах "Раскладка" и "Цвета" чтобы при выводе результатов в данных листах игнорировались пустые строки из листа "Данные". Проблема в том, что в последующем при построении сводных таблиц и отборе уникальных значений из листов "Раскладка" и "Цвета" очень мешают "нули" и "пустые" значения(((
К сообщению приложен файл: skhlopnutpustye.xlsx (62.3 Kb)


Сообщение отредактировал IvanBezdomny - Четверг, 11.05.2023, 21:54
 
Ответить
СообщениеДоброго времени, уважаемые форумчане! С данной темой обращался на дружественном форуме Планета Excel. Прошу вас оказать помощь в корректировке массивных формул в листах "Раскладка" и "Цвета" чтобы при выводе результатов в данных листах игнорировались пустые строки из листа "Данные". Проблема в том, что в последующем при построении сводных таблиц и отборе уникальных значений из листов "Раскладка" и "Цвета" очень мешают "нули" и "пустые" значения(((

Автор - IvanBezdomny
Дата добавления - 11.05.2023 в 21:53
bigor Дата: Четверг, 11.05.2023, 22:26 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1275
Репутация: 246 ±
Замечаний: 0% ±

нет
Доброго, а выбрать фильтром и удалить пустые строки на листе Данные - не вариант?
 
Ответить
СообщениеДоброго, а выбрать фильтром и удалить пустые строки на листе Данные - не вариант?

Автор - bigor
Дата добавления - 11.05.2023 в 22:26
IvanBezdomny Дата: Пятница, 12.05.2023, 10:06 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

bigor, к сожалению не вариант.
 
Ответить
Сообщениеbigor, к сожалению не вариант.

Автор - IvanBezdomny
Дата добавления - 12.05.2023 в 10:06
Nic70y Дата: Пятница, 12.05.2023, 11:59 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
выбросим массивные, вставим обычные
(вдруг правильно)
К сообщению приложен файл: 715.xlsx (27.6 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениевыбросим массивные, вставим обычные
(вдруг правильно)

Автор - Nic70y
Дата добавления - 12.05.2023 в 11:59
IvanBezdomny Дата: Пятница, 12.05.2023, 13:55 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Здравствуйте, Nic70y! Решение крутое, не думал, что это возможно без массивных! Однако, есть вопрос. Наверное недостаточно полный пример с разными вариантами.
1. Бывает так, что в списке строка может быть "особняком", то есть пусто и сверху и снизу, тогда результаты неверны (Пример 1 прилагаю).
2. Бывает так, что в столбце материал встречаются одинаковые значения, тогда результаты неверны (Пример 2 прилагаю).
К сообщению приложен файл: primer_1.xlsx (24.2 Kb) · primer_2.xlsx (25.9 Kb)
 
Ответить
СообщениеЗдравствуйте, Nic70y! Решение крутое, не думал, что это возможно без массивных! Однако, есть вопрос. Наверное недостаточно полный пример с разными вариантами.
1. Бывает так, что в списке строка может быть "особняком", то есть пусто и сверху и снизу, тогда результаты неверны (Пример 1 прилагаю).
2. Бывает так, что в столбце материал встречаются одинаковые значения, тогда результаты неверны (Пример 2 прилагаю).

Автор - IvanBezdomny
Дата добавления - 12.05.2023 в 13:55
Nic70y Дата: Пятница, 12.05.2023, 14:04 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
IvanBezdomny, в примере 1 Вы просто сломали формулу.
со вторым да, формула не предусматривает повторов.
что должно быть во втором случае?


ЮMoney 41001841029809
 
Ответить
СообщениеIvanBezdomny, в примере 1 Вы просто сломали формулу.
со вторым да, формула не предусматривает повторов.
что должно быть во втором случае?

Автор - Nic70y
Дата добавления - 12.05.2023 в 14:04
IvanBezdomny Дата: Пятница, 12.05.2023, 14:21 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

В первом примере я просто добавил пустую строку в "Данные". Из-за этого формула сломалась?
Во втором случае данные повторяться только в столбце А. То есть их просто обрабатывать (дублировать) с учетом данных в столбце В (в обычном порядке).
К сообщению приложен файл: 5235249.xlsx (26.1 Kb)
 
Ответить
СообщениеВ первом примере я просто добавил пустую строку в "Данные". Из-за этого формула сломалась?
Во втором случае данные повторяться только в столбце А. То есть их просто обрабатывать (дублировать) с учетом данных в столбце В (в обычном порядке).

Автор - IvanBezdomny
Дата добавления - 12.05.2023 в 14:21
Nic70y Дата: Пятница, 12.05.2023, 14:42 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
Из-за этого формула сломалась?
да там была ссылка на нижнюю строку листа, это я не задумываясь сделал, это можно исправить.
с повторами нужно менять подход, посмотрю позже - сейчас надо работать.


ЮMoney 41001841029809
 
Ответить
Сообщение
Из-за этого формула сломалась?
да там была ссылка на нижнюю строку листа, это я не задумываясь сделал, это можно исправить.
с повторами нужно менять подход, посмотрю позже - сейчас надо работать.

Автор - Nic70y
Дата добавления - 12.05.2023 в 14:42
IvanBezdomny Дата: Пятница, 12.05.2023, 15:00 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Понял, спасибо!!
 
Ответить
СообщениеПонял, спасибо!!

Автор - IvanBezdomny
Дата добавления - 12.05.2023 в 15:00
Nic70y Дата: Пятница, 12.05.2023, 16:32 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
1 вариант - доп.столбцы
2 - макросы
[vba]
Код
Sub u_701()
    'лист Раскладка
    Application.ScreenUpdating = False
    a = Cells(Rows.Count, "a").End(xlUp).Row
    If a > 1 Then Range("a2:f" & a).Clear
    b = Sheets("Данные").Cells(Rows.Count, "a").End(xlUp).Row
    If b > 1 Then
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                e = Sheets("Данные").Range("b" & c).Value ' & " "
                g = Len(e) - Len(Replace(e, " ", "")) + 1
                For h = 1 To g
                    i = InStr(e & " ", " ")
                    j = Left(e, i - 1) '
                    k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                    Range("a" & k) = d
                    Range("b" & k) = j
                    Range("c" & k & ":f" & k) = Sheets("Данные").Range("c" & c & ":f" & c).Value
                    e = Mid(e, i + 1, Len(e))
                Next
            End If
        Next
        Range("c2:c" & k).NumberFormat = "m/d/yyyy"
    End If
    Application.ScreenUpdating = True
End Sub
Sub u_702()
    'лист Цвета
    Application.ScreenUpdating = False
    a = Cells(Rows.Count, "a").End(xlUp).Row
    If a > 1 Then Range("a2:e" & a).Clear
    b = Sheets("Данные").Cells(Rows.Count, "a").End(xlUp).Row
    If b > 1 Then
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                Range("a" & k) = Sheets("Данные").Range("a" & c).Value
                Range("b" & k & ":c" & k) = Sheets("Данные").Range("c" & c & ":d" & c).Value
                Range("d" & k) = Sheets("Данные").Range("e" & c).Value
                Range("e" & k) = Sheets("Данные").Range("e1").Value
            End If
        Next
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                Range("a" & k) = Sheets("Данные").Range("a" & c).Value
                Range("b" & k & ":c" & k) = Sheets("Данные").Range("c" & c & ":d" & c).Value
                Range("d" & k) = Sheets("Данные").Range("f" & c).Value
                Range("e" & k) = Sheets("Данные").Range("f1").Value
            End If
        Next
        Range("b2:b" & k).NumberFormat = "m/d/yyyy"
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 1015.xlsx (31.3 Kb) · 1015.xlsm (30.9 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение1 вариант - доп.столбцы
2 - макросы
[vba]
Код
Sub u_701()
    'лист Раскладка
    Application.ScreenUpdating = False
    a = Cells(Rows.Count, "a").End(xlUp).Row
    If a > 1 Then Range("a2:f" & a).Clear
    b = Sheets("Данные").Cells(Rows.Count, "a").End(xlUp).Row
    If b > 1 Then
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                e = Sheets("Данные").Range("b" & c).Value ' & " "
                g = Len(e) - Len(Replace(e, " ", "")) + 1
                For h = 1 To g
                    i = InStr(e & " ", " ")
                    j = Left(e, i - 1) '
                    k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                    Range("a" & k) = d
                    Range("b" & k) = j
                    Range("c" & k & ":f" & k) = Sheets("Данные").Range("c" & c & ":f" & c).Value
                    e = Mid(e, i + 1, Len(e))
                Next
            End If
        Next
        Range("c2:c" & k).NumberFormat = "m/d/yyyy"
    End If
    Application.ScreenUpdating = True
End Sub
Sub u_702()
    'лист Цвета
    Application.ScreenUpdating = False
    a = Cells(Rows.Count, "a").End(xlUp).Row
    If a > 1 Then Range("a2:e" & a).Clear
    b = Sheets("Данные").Cells(Rows.Count, "a").End(xlUp).Row
    If b > 1 Then
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                Range("a" & k) = Sheets("Данные").Range("a" & c).Value
                Range("b" & k & ":c" & k) = Sheets("Данные").Range("c" & c & ":d" & c).Value
                Range("d" & k) = Sheets("Данные").Range("e" & c).Value
                Range("e" & k) = Sheets("Данные").Range("e1").Value
            End If
        Next
        For c = 2 To b
            d = Sheets("Данные").Range("a" & c).Value
            If d <> "" Then
                k = Cells(Rows.Count, "a").End(xlUp).Row + 1
                Range("a" & k) = Sheets("Данные").Range("a" & c).Value
                Range("b" & k & ":c" & k) = Sheets("Данные").Range("c" & c & ":d" & c).Value
                Range("d" & k) = Sheets("Данные").Range("f" & c).Value
                Range("e" & k) = Sheets("Данные").Range("f1").Value
            End If
        Next
        Range("b2:b" & k).NumberFormat = "m/d/yyyy"
    End If
    Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 12.05.2023 в 16:32
IvanBezdomny Дата: Воскресенье, 14.05.2023, 10:53 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 20% ±

Здравствуйте, Nic70y!! Извините, что сразу не отреагировал на предложенные Вами решения, не был на месте!! Мне более всего подошел вариант с доп. столбцами!!! Спасибо Вам огромное!!!
 
Ответить
СообщениеЗдравствуйте, Nic70y!! Извините, что сразу не отреагировал на предложенные Вами решения, не был на месте!! Мне более всего подошел вариант с доп. столбцами!!! Спасибо Вам огромное!!!

Автор - IvanBezdomny
Дата добавления - 14.05.2023 в 10:53
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!