powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите плз, Excel (ЕСЛИ, ВПР)
22 сообщений из 22, страница 1 из 1
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33327405
whatchaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите написать запрос, нужно:
Если ячейка а1 на листе1 больше ячейкм а1 на листе2 то пишется на ячейке б1 результат "ув с ячейки а1 лист1" если меньше, то "ум с ячейки ф1 листа1"
+))) если поможете, то я спасен
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33327429
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whatchaaПомогите написать запрос, нужно:
Если ячейка а1 на листе1 больше ячейкм а1 на листе2 то пишется на ячейке б1 результат "ув с ячейки а1 лист1" если меньше, то "ум с ячейки ф1 листа1"+))) если поможете, то я спасен

На листе1 в ячейке B1 пишешь =ЕСЛИ(A1<Лист2!A1;"ув с ячейки а1 лист1";"ум с ячейки ф1 листа1")
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33327432
Фотография Sinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прочитай про

ЕСЛИ и ВПР...
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33327490
whatchaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо... сейчас посмотрю, я и забыл, что есть функции ЕСЛИ, думаю все будет ок.
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33327596
whatchaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
talgat whatchaaПомогите написать запрос, нужно:
Если ячейка а1 на листе1 больше ячейкм а1 на листе2 то пишется на ячейке б1 результат "ув с ячейки а1 лист1" если меньше, то "ум с ячейки ф1 листа1"+))) если поможете, то я спасен

На листе1 в ячейке B1 пишешь =ЕСЛИ(A1<Лист2!A1;"ув с ячейки а1 лист1";"ум с ячейки ф1 листа1")

а как сделать так, чтобы он в результат истина или ложь подставил значение ячейки + слова?
плизззз...
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33329107
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whatchaaа как сделать так, чтобы он в результат истина или ложь подставил значение ячейки + слова?
плизззз...
смотри здесь:)
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33684412
(!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(!)
Гость
Function Raschet(Data1, Data_b1, Data2, Data_b2, Nazvaniye, Nazvaniye_b, Sklad, Skald_b, Raschet_b) As Currency

CountArr = Data_b1.Count
i = 0
MySum = 0
Do
i = i + 1
If Data1 & Data2 & Nazvaniye & Sklad = Data_b1(i) & Data_b2(i) & Nazvaniye_b(i) & Sklad_b(i) Then MySum = MySum + Raschet_b(i)
Loop Until i = CountArr

Rashet = MySum
End Function

А как можно сделать поиск примерно такого вида >=Data1 и <=Data2 ,
а потом все остальное
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33685298
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
If Data_b1(i) >= Data1 And _
    Data_b2(i) <= Data2 And _
    Nazvaniye & Sklad = Nazvaniye_b(i) & Sklad_b(i) Then MySum = MySum + Raschet_b
Код: plaintext
1.
2.
If Data_b1(i) <= Data1 And Data2 & Nazvaniye & Sklad = Data_b2(i) & Nazvaniye_b(i) & Sklad_b(i) Or _
    Data_b1(i) >= Data1 And Data2 & Nazvaniye & Sklad = Data_b2(i) & Nazvaniye_b(i) & Sklad_b(i) Then _
    MySum = MySum + Raschet_b
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33686783
(!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(!)
Гость
vkodor
Код: plaintext
1.
2.
If Data_b1(i) >= Data1 And _
    Data_b2(i) <= Data2 And _
    Nazvaniye & Sklad = Nazvaniye_b(i) & Sklad_b(i) Then MySum = MySum + Raschet_b
Код: plaintext
1.
2.
If Data_b1(i) <= Data1 And Data2 & Nazvaniye & Sklad = Data_b2(i) & Nazvaniye_b(i) & Sklad_b(i) Or _
    Data_b1(i) >= Data1 And Data2 & Nazvaniye & Sklad = Data_b2(i) & Nazvaniye_b(i) & Sklad_b(i) Then _
    MySum = MySum + Raschet_b


Работает, но очень медленно :(
Стандартными функциями Экзеля все расчитывает, значительно быстрее. Не могли бы , что небудь посоветовать ?
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33686853
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(!) Не могли бы , что небудь посоветовать ?
есть стандартные методы убыстрения
как то
Код: plaintext
1.
2.
3.
4.
5.
6.
    Application.EnableEvents = False
    Application.Calculation = xlManual
    Application.ScreenUpdating = False
    ...
    Application.EnableEvents = True
    Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True

Но я бы поменял алгоритм
сначало сортировка по дате

потом поиск первой ячейки с начальной датой,
а далее пробег от найденной ячейки, считая сумму, пока не будет больше второй даты.
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33686901
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(!)
Стандартными функциями Экзеля все расчитывает, значительно быстрее.
Какими именно?
Может ими и воспользоваться?
Код: plaintext
a = Application.WorksheetFunction.SumIf(Range("A1:A1000"), "= 38391", Range("B1:B1000"))
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33687665
(!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(!)
Гость
vkodor
Какими именно?
Может ими и воспользоваться?
Код: plaintext
a = Application.WorksheetFunction.SumIf(Range("A1:A1000"), "= 38391", Range("B1:B1000"))

Не могли бы, вы написать как будет выглдять на VBA след форумула:
Код: plaintext
1.
{=СУММ(ЕСЛИ(D$ 5 :D$ 31 =I5;ЕСЛИ(C$ 5 :C$ 31 =H5;ЕСЛИ(B$ 5 :B$ 31 >=G5;E$ 5 :E$ 31 ))))}
Хорошо юы и на VBA указать ввиде массива
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33688089
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(!)Не могли бы, вы написать как будет выглдять на VBA след форумула:
Код: plaintext
1.
{=СУММ(ЕСЛИ(D$ 5 :D$ 31 =I5;ЕСЛИ(C$ 5 :C$ 31 =H5;ЕСЛИ(B$ 5 :B$ 31 >=G5;E$ 5 :E$ 31 ))))}
Хорошо юы и на VBA указать ввиде массива
не могу
в "WorksheetFunction" нет функции "If"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Raschet(Data1 As Range, Data_b1 As Range, _
    Data2 As Range, Data_b2 As Range, _
    Nazvaniye As Range, Nazvaniye_b As Range, _
    Sklad As Range, Skald_b As Range, _
    Raschet_b As Range) As Currency
    
    Dim i As Long
    Dim MySum As Currency
    i =  0 
    MySum =  0 
    Do
    i = i +  1 
    If Data1 >= Data_b1(i) And _
        Data2 <= Data_b2(i) And _
        Nazvaniye = Nazvaniye_b(i) And _
        Sklad = Sklad_b(i) Then MySum = MySum + Raschet_b(i)
    Loop Until i = Data_b1.Count
    
    Rashet = MySum
End Function
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33691033
(!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(!)
Гость
vkodor
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Raschet(Data1 As Range, Data_b1 As Range, _
    Data2 As Range, Data_b2 As Range, _
    Nazvaniye As Range, Nazvaniye_b As Range, _
    Sklad As Range, Sklаd_b As Range, _
    Raschet_b As Range) As Currency
    
    Dim i As Long
    Dim MySum As Currency
    i =  0 
    MySum =  0 
    Do
    i = i +  1 
    If Data1 >= Data_b1(i) And _
        Data2 <= Data_b2(i) And _
        Nazvaniye = Nazvaniye_b(i) And _
        Sklad = Sklad_b(i) Then MySum = MySum + Raschet_b(i)
    Loop Until i = Data_b1.Count
    
    Rashet = MySum
End Function


Возвращает ошибку #ЗНАЧ, пересмотрел вроде все возможные причины
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33691118
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(!) vkodor
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Function Raschet(Data1 As Range, Data_b1 As Range, _
    Data2 As Range, Data_b2 As Range, _
    Nazvaniye As Range, Nazvaniye_b As Range, _
    Sklad As Range, Sklаd_b As Range, _
    Raschet_b As Range) As Currency
    
    Dim i As Long
    Dim MySum As Currency
    i =  0 
    MySum =  0 
    Do
    i = i +  1 
    If Data1 >= Data_b1(i) And _
        Data2 <= Data_b2(i) And _
        Nazvaniye = Nazvaniye_b(i) And _
        Sklad = Sklad_b(i) Then MySum = MySum + Raschet_b(i)
    Loop Until i = Data_b1.Count
    
    Rashet = MySum
End Function


Возвращает ошибку #ЗНАЧ, пересмотрел вроде все возможные причины
замени
Код: plaintext
Rashet = MySum
на
Код: plaintext
Raschet
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33691195
(!)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(!)
Гость
Да уже исправил, теперь на месте значения в ячейке появился знак - ,
Как будто этих данных нет в таблице :(.
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33691742
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(!)Да уже исправил, теперь на месте значения в ячейке появился знак - ,
Как будто этих данных нет в таблице :(.
А как вызываешь?
Передаешь значения или ячейки?
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33691768
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodor (!)Да уже исправил, теперь на месте значения в ячейке появился знак - ,
Как будто этих данных нет в таблице :(.
А как вызываешь?
Передаешь значения или ячейки?

Проверил и получилось следущиее:
1. При использование функции в листе с данными,все работает нормально
2. При переносе на другой лист и извлечении с листа1 , данные расчитывает 0.

Код: plaintext
=Raschet1(B10;ЛО!A6:A1700;C10;ЛО!O6:O1700;D10;ЛО!K6:K1700;ЛО!H6:H1700)
Где ЛО , это лист с данными , а сама функция расположена на Листе2
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33692107
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evrodiller
Проверил и получилось следущиее:
1. При использование функции в листе с данными,все работает нормально
2. При переносе на другой лист и извлечении с листа1 , данные расчитывает 0.

Код: plaintext
=Raschet1(B10;ЛО!A6:A1700;C10;ЛО!O6:O1700;D10;ЛО!K6:K1700;ЛО!H6:H1700)
Где ЛО , это лист с данными , а сама функция расположена на Листе2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Function Raschet(Data1 As Range, Data_b1 As Range, _
    Data2 As Range, Data_b2 As Range, _
    Nazvaniye As Range, Nazvaniye_b As Range, _
    Sklad As Range, Sklàd_b As Range, _
    Raschet_b As Range) As Currency
    
    Dim i As Long
    Dim MySum As Currency
    i =  0 
    MySum =  0 
    Do
    i = i +  1 
    If Data1 >= Data_b1(i) And Data2 <= Data_b2(i) And Nazvaniye = Nazvaniye_b(i) And Sklad = Sklàd_b(i) Then MySum = MySum + Raschet_b(i)
    Loop Until i = Data_b1.Count
    
    Raschet = MySum
End Function
Compile ругался на "Nazvaniye" и "Sklad" видимо при разных раскладках клавиатуры были написаны
А так все работает
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33692120
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение задачи работает по варианту предложенным 100g
Может кому пригодится.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function Начальный_Остаток(ДатаНач, ДатаНач1, Склад, Склад1, Объект, Объект1, Расчет) As Currency

    CountArr = ДатаНач1.Count
    i =  0 
    MySum =  0 
    Do
       i = i +  1 
       If ДатаНач >= ДатаНач1(i) And Склад & Объект = Склад1(i) & Объект1(i) Then MySum = MySum + Расчет(i)
    Loop Until i = CountArr
    
    Начальный_Остаток = MySum
End Function

Вид в формуле
Код: plaintext
=Начальный_Остаток(G5;ЛО!A7:A2000;B9;ЛО!O7:O2000;D4;ЛО!K7:K2000;ЛО!H7:H2000)
Замечания:
1. Не удалось использовать именнованные диапазоны
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33692145
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkodorCompile ругался на "Nazvaniye" и "Sklad" видимо при разных раскладках клавиатуры были написаны
А так все работает

Уже решил задачу примерно таким же способом.
Спасибо за потраченное время и энергию на помощь в разрешение :)
...
Рейтинг: 0 / 0
Помогите плз, Excel (ЕСЛИ, ВПР)
    #33692246
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EvrodillerЗамечания:
1. Не удалось использовать именнованные диапазоны
если диапозоны обьявлять в левом верхнем углу, то они обьявляются на уровне листа, и тогда с ними тяжело работать, надо писать имя листа и потом название диапозона.
если имя давать через меню "вставка - имя -> присвоить", то они обьявляются на уровне книги, и тогда можно ссылаться просто по имени

Evrodiller1. При использование функции в листе с данными,все работает нормально
2. При переносе на другой лист и извлечении с листа1 , данные расчитывает 0.

проблема извесная нужно использовать свойсто Parent
т.е. примерно так
Код: plaintext
mySum = mySum + Sheets(rng.Parent.name).cells(i,c)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите плз, Excel (ЕСЛИ, ВПР)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]