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

Вход

Регистрация

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

 

= Мир MS Excel/Построение формулы с условие на несколько листов - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Построение формулы с условие на несколько листов (Формулы/Formulas)
Построение формулы с условие на несколько листов
vzdrjni Дата: Воскресенье, 23.12.2018, 15:40 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем привет.
Суть задачи:
Имеются несколько листов с одинаковой структурой.
На мастер лист надо вывести сумму произведений двух ячеек с тех листов, на которых значение определенной ячейки соответствует текстовому значению.
Если текстовое значение не соответствует заданному, то надо игнорировать этот лист.
Например надо посчитать сколько было приемов пищи.
Имеются 3 ячейки: "дни", "кол-во человек" "прием пищи=да/нет"
Если приемы пищи = да - делать вычисление. Если приемы пищи = нет - не делать.
Буду очень благодарен за помощь.


Сообщение отредактировал vzdrjni - Воскресенье, 23.12.2018, 16:09
 
Ответить
СообщениеВсем привет.
Суть задачи:
Имеются несколько листов с одинаковой структурой.
На мастер лист надо вывести сумму произведений двух ячеек с тех листов, на которых значение определенной ячейки соответствует текстовому значению.
Если текстовое значение не соответствует заданному, то надо игнорировать этот лист.
Например надо посчитать сколько было приемов пищи.
Имеются 3 ячейки: "дни", "кол-во человек" "прием пищи=да/нет"
Если приемы пищи = да - делать вычисление. Если приемы пищи = нет - не делать.
Буду очень благодарен за помощь.

Автор - vzdrjni
Дата добавления - 23.12.2018 в 15:40
StoTisteg Дата: Воскресенье, 23.12.2018, 15:53 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1156
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Выводите, никто не возражает. Если Вы покажете пример того, что у Вас есть и что Вы с этого хотите иметь, Вам даже помогут. Но это не точно.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеВыводите, никто не возражает. Если Вы покажете пример того, что у Вас есть и что Вы с этого хотите иметь, Вам даже помогут. Но это не точно.

Автор - StoTisteg
Дата добавления - 23.12.2018 в 15:53
vzdrjni Дата: Воскресенье, 23.12.2018, 16:06 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Если Вы покажете пример того, что у Вас есть и что Вы...

Вот грубый пример.
Как получить это "56" но с помощью формулы?
К сообщению приложен файл: 9978029.xlsx(10.9 Kb)
 
Ответить
Сообщение
Если Вы покажете пример того, что у Вас есть и что Вы...

Вот грубый пример.
Как получить это "56" но с помощью формулы?

Автор - vzdrjni
Дата добавления - 23.12.2018 в 16:06
Pelena Дата: Воскресенье, 23.12.2018, 16:36 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 13786
Репутация: 3028 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Вариант с доп. столбцами. Формулу можно ввести сразу на все листы (выделить все ярлыки с зажатой Shift и ввести формулу)
К сообщению приложен файл: 3043502.xlsx(11.5 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеВариант с доп. столбцами. Формулу можно ввести сразу на все листы (выделить все ярлыки с зажатой Shift и ввести формулу)

Автор - Pelena
Дата добавления - 23.12.2018 в 16:36
vzdrjni Дата: Воскресенье, 23.12.2018, 17:23 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Вариант с доп. столбцами

Не могу понять что не так.
Я так понял мне нужна формула =sumif(
Эксель на английском. В туториалах (по крайней мере в русском экселе) правильное написание формулы идёт через точку-запятую, но у меня range, criteria, sum_range применяются только через запятую.
И в итоге ничего не получается ни в том ни в другом варианте.
Я не очень хорош %)
 
Ответить
Сообщение
Вариант с доп. столбцами

Не могу понять что не так.
Я так понял мне нужна формула =sumif(
Эксель на английском. В туториалах (по крайней мере в русском экселе) правильное написание формулы идёт через точку-запятую, но у меня range, criteria, sum_range применяются только через запятую.
И в итоге ничего не получается ни в том ни в другом варианте.
Я не очень хорош %)

Автор - vzdrjni
Дата добавления - 23.12.2018 в 17:23
Светлый Дата: Воскресенье, 23.12.2018, 19:11 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 955
Репутация: 233 ±
Замечаний: 0% ±

Excel 2010
Можно массивную формулу:
Код
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(Т(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!G2"))="да";Ч(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!E2"))*Ч(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!F2")));))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеМожно массивную формулу:
Код
=СУММ(ЕСЛИОШИБКА(ЕСЛИ(Т(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!G2"))="да";Ч(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!E2"))*Ч(ДВССЫЛ("'"&{"январь";"февраль";"март";"апрель";"май";"июнь";"июль";"август";"сентябрь";"октябрь";"ноябрь";"декабрь"}&"'!F2")));))

Автор - Светлый
Дата добавления - 23.12.2018 в 19:11
vzdrjni Дата: Воскресенье, 23.12.2018, 19:51 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Цитата Светлый, 23.12.2018 в 19:11, в сообщении № 6 ()
Можно массивную формулу

Спасибо, уже разобрался.
Решилось всё двумя макросами и парой формул для подсчета этого
Макрос для собирания информации из ячеек:
[vba]
Код

Sub CollectAllSheets()
Application.Goto Reference:="Stays"
Dim i As Integer
Dim sh As Worksheet, stsh As Worksheet
Dim stays As Range, r As Range
Set stays = Range("Stays")
If stays.Rows.Count > 1 Then
stays.Resize(stays.Rows.Count - 1).Delete
End If

For i = 2 To Application.ActiveWorkbook.Sheets.Count
Set sh = Application.ActiveWorkbook.Sheets(i)
If i > 2 Then
Range("Stays").Rows(i - 1).ListObject.ListRows.Add AlwaysInsert:=True
End If
Set r = Range("Stays").Rows(i - 1)
r.Cells(1, 1) = sh.Cells(17, 2).Value
r.Cells(1, 2) = sh.Cells(17, 4).Value
r.Cells(1, 3) = sh.Cells(18, 5).Value
r.Cells(1, 4) = sh.Cells(16, 7).Value
r.Cells(1, 7) = sh.Cells(39, 8).Value
Next
End Sub
[/vba]

Макрос для собирания листов в книгу:
[vba]
Код

Sub ConslidateWorkbooks()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = Environ("userprofile") & "\Desktop\Test\"
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub
[/vba]

Может кому пригодится.


Сообщение отредактировал vzdrjni - Воскресенье, 23.12.2018, 19:54
 
Ответить
Сообщение
Цитата Светлый, 23.12.2018 в 19:11, в сообщении № 6 ()
Можно массивную формулу

Спасибо, уже разобрался.
Решилось всё двумя макросами и парой формул для подсчета этого
Макрос для собирания информации из ячеек:
[vba]
Код

Sub CollectAllSheets()
Application.Goto Reference:="Stays"
Dim i As Integer
Dim sh As Worksheet, stsh As Worksheet
Dim stays As Range, r As Range
Set stays = Range("Stays")
If stays.Rows.Count > 1 Then
stays.Resize(stays.Rows.Count - 1).Delete
End If

For i = 2 To Application.ActiveWorkbook.Sheets.Count
Set sh = Application.ActiveWorkbook.Sheets(i)
If i > 2 Then
Range("Stays").Rows(i - 1).ListObject.ListRows.Add AlwaysInsert:=True
End If
Set r = Range("Stays").Rows(i - 1)
r.Cells(1, 1) = sh.Cells(17, 2).Value
r.Cells(1, 2) = sh.Cells(17, 4).Value
r.Cells(1, 3) = sh.Cells(18, 5).Value
r.Cells(1, 4) = sh.Cells(16, 7).Value
r.Cells(1, 7) = sh.Cells(39, 8).Value
Next
End Sub
[/vba]

Макрос для собирания листов в книгу:
[vba]
Код

Sub ConslidateWorkbooks()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = Environ("userprofile") & "\Desktop\Test\"
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub
[/vba]

Может кому пригодится.

Автор - vzdrjni
Дата добавления - 23.12.2018 в 19:51
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Построение формулы с условие на несколько листов (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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