Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Как можно сразу во все формулы добавить ещё одно действие
 
А как-то можно сделать, чтоб во все ячейки столба в конце дописалось, например, " /А1 " ? т.е. чтобы не просто поделилось, а чтоб это была формула с делением на ячейку, которую можно менять  
[ Закрыто] Нашел ошибку, как победить?, Решение проблемы с неудаляемыми пустыми строками
 
Очистил документ Excel от всех данных, но в файле сохраняется ошибка, которую никак не удается ликвидировать (сильно грузит файл).
Хорошо бы найти способ, позволяющий ее убрать в действующем документе без потери данных.
На скринах начало и конец проблемной части. Сам файл не крепится из-за размера, видимо.
Изменено: Александр Мнацаканов - 23.08.2024 15:07:16
Подставить данные из одной таблицы в другую по условию, Вопрос
 
Цитата
написал:
Нужно ее с ИНДЕКСом пробовать)
Точно! спасибо!
Подставить данные из одной таблицы в другую по условию, Вопрос
 
Подскажите, пожалуйста, какой формулой можно подставить данные из таблици1 в таблицу2 для получения столбца "D"
Пробовал "поискпоз" - не получается. Через ВПР - слишком много условий, т.к. таких групп могут быть сотни.
Несколько значений заменить на одно, Вопрос
 
Цитата
написал:
А можно сразу от 0й таблицы перейти к 3й?=СУММЕСЛИ($B$3:$B$8;E8&"*";$C$3:$D$8)
О! Спасибо!
Несколько значений заменить на одно, Вопрос
 
Цитата
написал:
Добрый день! СУММЕСЛИМН пробовали?
Выше использовал эту формулу, но получилось слишком громоздко. Мне кажется, что это можно проще сделать.
Несколько значений заменить на одно, Вопрос
 
Цитата
написал:
Пример - это Файл-пример. Как есть - Как надо. Читаем Правила форума
Несколько значений заменить на одно, Вопрос
 
Не заю как правильно написать вопрос, проще привести пример - например, у меня есть одна таблица:

арбуз1 | 1
арбуз2 | 1
арбуз3 | 1
тыква1 | 1
тыква2 | 1
грушаЖ | 1

Мне нужно как-то задать условие, что бы программа смогла суммировать следующим образом:

арбуз | 3
тыква | 2
груша | 1

Как я понимаю, нужно несколько формул, возможно, одна из них - ВПР, а вот в какой формуле задать условие, что бы она понимала что к чему относить? я так понимаю, нужна вспомогательная таблица, в которой будет расписано, что если это "арбуз1" или "арбуз2", то это относить к "арбуз".
Изменено: Александр Мнацаканов - 12.05.2024 14:04:18
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Александр Мнацаканов, все верно, но лучше, исользовать также Mid в дополнительной проверке, поскольку положение знака "=" известно. И сам знак "=" определить как константу.
Код
    [URL=#]?[/URL]       1  2  3  4  5            Dim   arrF(), arrV(), i&          Const   eq$ =   "="    ***                  If   Mid(arrF(i, 1), 1, 1) = eq   Then    ***   
 
Возможно такая конструкция еще оптимальней, но это не точно, надо звать гуру)
Код
    [URL=#]?[/URL]       1      If   StrComp(Mid$(  CStr  (arrF(i, 1)), 1, 1), eq) = 0   Then   
 
Спасибо, потестирую.
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Кажется, у меня получилось, но это не точно, т.к. это мой первый макрос.
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Цитата
написал:
Обнаружил одну проблему: если, например, в столбце С3 стоит не 0, а "=10-10", что тоже равно нулю, НО, макрос такую ячейку не воспринимает как то, что нужно взять в скобки и умножить на ноль, а идет для этой ячейки по второму пути, т.е. приравнивается к С3
Разобравшись с тем, как работает функция Mid, я понял, что есть еще одна проблема (в файле она на примере "Кати"). Можно как-то макрос научить решать такую проблему самостоятельно, что бы вручную не искать позиции, где нет "="?

Видимо, нужно еще одно условие, типа: ЕСЛИ - поиск (содержит символ "=", то всё как сейчас в макросе; если не содержит символ "=", то все то же самое, только без "=" и начинать с первого символа в функции Мид)... Наверно, есть более элегантное решение, но я не знаком с VBA.

Либо, перед запуском основной части макроса, принудительно во всем столбце "В" добавить знак "=", если его там нет.
Изменено: Александр Мнацаканов - 20.12.2022 17:26:42
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Цитата
написал:
Обнаружил одну проблему: если, например, в столбце С3 стоит не 0, а "=10-10", что тоже равно нулю, НО, макрос такую ячейку не воспринимает как то, что нужно взять в скобки и умножить на ноль, а идет для этой ячейки по второму пути, т.е. приравнивается к С3
Спасибо!
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Кто-нибудь знает как дописать макрос для выполнения условия в документе?
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Не получается  :D  
Изменено: Александр Мнацаканов - 20.12.2022 13:24:35
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14      Sub   fafasf2()          Dim   arr()          With   Range([B3], [C3].  End  (xlDown))              arr = .Formula              For   i = 1   To   UBound(arr)                  If   arr(i, 2) = 0   Then                      arr(i, 1) =   "=("   + Mid(arr(i, 1), 2) +   ")*0"                  Else                      arr(i, 1) = arr(i, 2)                  End   If              Next              .Formula = arr          End   With    End   Sub   
 
Обнаружил одну проблему: если, например, в столбце С3 стоит не 0, а "=10-10", что тоже равно нулю, НО, макрос такую ячейку не воспринимает как то, что нужно взять в скобки и умножить на ноль, а идет для этой ячейки по второму пути, т.е. приравнивается к С3
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
А что ваша формула считать то должна? Может условие прямо в нее записать и не нужно макросов? Пока, из написанного, такую формулу вижу для первой строки  =ЕСЛИ($C1;10;0)  
Смысл использования макроса здесь в том, что бы в столбце "В" сохранилась прежняя формула (она необходима проверяющим), в противном случае можно было вообще просто скопировать содержимое столбца "С" и вставить поверх столбца "В".
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
               arr(i, 1) = arr(i, 2)

               arr(i, 1) = arr(i, 2)

А как должна выглядеть эта строчка, если нужно, что бы он подставил туда только значение этой ячейки, а не все её содержимое с формулой?

имею в виду, что если бы в ячейке С4 было "=10*2", то в В4 вставлялось просто "20", а не "=10*2"

Как я понимаю, вот эта часть "arr = .Formula" тоже задействована в этом.
Изменено: Александр Мнацаканов - 13.12.2022 13:55:11
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1      Range([B3], [C4])   
 
Спасибо.
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14      Sub   fafasf2()          Dim   arr()          With   Range([B3], [C3].  End  (xlDown))              arr = .Formula              For   i = 1   To   UBound(arr)                  If   arr(i, 2) = 0   Then                      arr(i, 1) =   "=("   + Mid(arr(i, 1), 2) +   ")*0"                  Else                      arr(i, 1) = arr(i, 2)                  End   If              Next              .Formula = arr          End   With    End   Sub   
 
Подскажите, а где в макросе задается конец диапазона (в который нужно вносить изменения)?
Как я понимаю, "With Range([B3], [C3].End(xlDown))" - это мы говорим начать с третьей строчки.
А как указать, что бы макрос остановился, например на 4 строчке, и начиная с пятой строчки ничего не менял.
Изменено: Александр Мнацаканов - 13.12.2022 12:40:03
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14      Sub   fafasf2()          Dim   arr()          With   Range([B3], [C3].  End  (xlDown))              arr = .Formula              For   i = 1   To   UBound(arr)                  If   arr(i, 2) = 0   Then                      arr(i, 1) =   "=("   + Mid(arr(i, 1), 2) +   ")*0"                  Else                      arr(i, 1) = arr(i, 2)                  End   If              Next              .Formula = arr          End   With    End   Sub   
 
Огромное спасибо! всё как надо - не придется 20 тысяч строк вручную перебивать, изучаю ваш макрос.
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13      Sub   fafasf()          Dim   arr(), tmpArr$()          With   Range([B1], [C1].  End  (xlDown))              arr = .Formula              For   i = 1   To   UBound(arr)                  tmpArr() = Split(arr(i, 1),   "+"  )                  If   tmpArr(1) <> arr(i, 2)   Then                      arr(i, 1) = tmpArr(0) &   "+"   & arr(i, 2)                  End   If              Next              .Formula = arr          End   With    End   Sub   
 
Расписал правильно, что должно получаться, извиняюсь за свою ошибку со скобками (получается, их тоже надо дописать в первоначальной формуле, т.к. изначально их там нет)
Изменено: Александр Мнацаканов - 12.12.2022 19:34:14
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Цитата
написал:
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13      Sub   fafasf()          Dim   arr(), tmpArr$()          With   Range([B1], [C1].  End  (xlDown))              arr = .Formula              For   i = 1   To   UBound(arr)                  tmpArr() = Split(arr(i, 1),   "+"  )                  If   tmpArr(1) <> arr(i, 2)   Then                      arr(i, 1) = tmpArr(0) &   "+"   & arr(i, 2)                  End   If              Next              .Formula = arr          End   With    End   Sub   
 
Большое Спасибо, но где-то что-то чуть-чуть неправильно:

После макроса сейчас выходит:
В1 = 10+0 (а должно быть =(10+10)*0) - получается он срезал часть формулы изначальной "=10+10"
В2 = 10+10 (а должно быть =10) - тут я даже не понял как так вышло, была формула =10+20
В3 = 10+0 (а должно быть =(10+30)*0) - тоже срезал часть формулы изначальной "=10+30"

Возможно, я непонятно написал условие, не поставив скобки:
-если в столбце С значение равно 0, то в столбце В он должен дописать к формуле "*0" (умножить на ноль)
-если в столбце С не равно 0, то в столбце В он должен просто приравняться к значению по столбцу С
Изменено: Александр Мнацаканов - 12.12.2022 19:24:59
Макрос на дописывание формулы, Макрос на дописывание формулы
 
Пытаюсь придумать какой-нибудь макрос.

Нужно что бы в столбце В произошла замена формулы в зависимости от значений в столбце С
в ячейке В1 формула "=10+10", должно замениться на "=10+10*0", т.к. С1 равно 0
в ячейке В2 формула "=10+20", должно замениться на "10", т.к. С2 не равно 0, а равно 10
в ячейке В3 формула "=10+30", должно замениться на "=10+30*0", т.к. С3 равно 0
Изменено: Александр Мнацаканов - 12.12.2022 15:20:24
Страницы: 1
Наверх