Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2012, 15:17   #1
wirta
Новичок
Джуниор
 
Регистрация: 27.02.2012
Сообщений: 1
Сообщение Как изменить формулу или продолжить ее...!!!

Доброе утро. Помогите пожалуйста в формуле (см. ниже)

=СУММЕСЛИ(Киев!B6:B76;A44;Киев! F6:F76)+СУММЕСЛИ(Львов!B6:B76;A44 ;Львов!F6:F76)+СУММЕСЛИ(Донецк!B4:B 74;A44;Донецк!F6:F76)+СУММЕСЛИ(Харь ков !B4:B74;A44;Харьков!F6:F76)+СУММЕСЛ И (Москва!B4:B74;A44;Москва!I4:I76)+С УММЕСЛИ(Тбилиси!B4:B73;A44;Тбилиси! I4:I75)+СУММ ЕСЛИ(Винница!B4:B73;A44;Винница!I4: I75)+СУММЕСЛИ(Суммы!B4:B74;A44;Сумм ы!I4 :I76)+СУММЕСЛИ(Спб!B4:B74;A44; Спб!I4:I76)+СУММЕСЛИ(Воронеж!B 4:B74;A44;Воронеж!I4:I74)+СУММЕСЛИ( Ужгород!B4:B74;A44;Ужгород!I4:I76)+ СУ ММЕСЛИ(Одесса!B4:B74;A44;Одесса!I 4:I76)....

И так нужно продолжить еще определенное кол-во городов, но эксель выдает как сильно сложная формула...Возможно ее как-то заменить???
wirta вне форума Ответить с цитированием
Старый 28.02.2012, 18:36   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Если Вы все данные с листов с именами городов перенесете на 1 лист, добавите колонку "Город" и заполните ее, то длина формулы станет 30 символов.
фильтр позволит вам элементарно отбирать данные по любому городу
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.02.2012, 10:26   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

Цитата:
Сообщение от wirta Посмотреть сообщение
Доброе утро. Помогите пожалуйста в формуле (см. ниже)

=СУММЕСЛИ(Киев!B6:B76;A44;Киев! F6:F76)+СУММЕСЛИ(Львов!B6:B76;A44 ;Львов!F6:F76)+СУММЕСЛИ(Донецк!B4:B 74;A44;Донецк!F6:F76)+СУММЕСЛИ(Харь ков !B4:B74;A44;Харьков!F6:F76)+СУММЕСЛ И (Москва!B4:B74;A44;Москва!I4:I76)+С УММЕСЛИ(Тбилиси!B4:B73;A44;Тбилиси! I4:I75)+СУММ ЕСЛИ(Винница!B4:B73;A44;Винница!I4: I75)+СУММЕСЛИ(Суммы!B4:B74;A44;Сумм ы!I4 :I76)+СУММЕСЛИ(Спб!B4:B74;A44; Спб!I4:I76)+СУММЕСЛИ(Воронеж!B 4:B74;A44;Воронеж!I4:I74)+СУММЕСЛИ( Ужгород!B4:B74;A44;Ужгород!I4:I76)+ СУ ММЕСЛИ(Одесса!B4:B74;A44;Одесса!I 4:I76)....

И так нужно продолжить еще определенное кол-во городов, но эксель выдает как сильно сложная формула...Возможно ее как-то заменить???

можете попробовать вот это (в модуль положить):

Цитата:
Сообщение от wirta Посмотреть сообщение
Sub New_Multi_Table_Pivot()
Dim i As Long
Dim arSQL() As String
Dim objPivotCache As PivotCache
Dim objRS As Object
Dim ResultSheetName As String
Dim SheetsNames As Variant

'имя листа, куда будет выводиться результирующая сводная
ResultSheetName = "Сводная"
'массив имен листов с исходными таблицами
SheetsNames = Array("Альфа", "Бета", "Гамма", "Дельта")

'формируем кэш по таблицам с листов из SheetsNames
With ActiveWorkbook
ReDim arSQL(1 To (UBound(SheetsNames) + 1))
For i = LBound(SheetsNames) To UBound(SheetsNames)
arSQL(i + 1) = "SELECT * FROM [" & SheetsNames(i) & "$]"
Next i
Set objRS = CreateObject("ADODB.Recordset")
objRS.Open Join$(arSQL, " UNION ALL "), _
Join$(Array("Provider=Microsoft.Jet .OLEDB.4.0; Data Source=", _
.FullName, ";Extended Properties=""Excel 8.0;"""), vbNullString)
End With

'создаем заново лист для вывода результирующей сводной таблицы
On Error Resume Next
Application.DisplayAlerts = False
Worksheets(ResultSheetName).Delete
Set wsPivot = Worksheets.Add
wsPivot.Name = ResultSheetName

'выводим на этот лист сводную по сформированному кэшу
Set objPivotCache = ActiveWorkbook.PivotCaches.Add(xlEx ternal)
Set objPivotCache.Recordset = objRS
Set objRS = Nothing
With wsPivot
objPivotCache.CreatePivotTable TableDestination:=wsPivot.Range("A3 ")
Set objPivotCache = Nothing
Range("A3").Select
End With

End Sub
не помню кто писал этот код, но по моему нашел на этом форуме
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка WM_SETCURSOR или как изменить курсор кнопки kenny13 Win Api 3 20.11.2011 09:48
Как изменить формулу. Я можно сказать чайник Iruska818 Microsoft Office Excel 1 29.11.2010 10:20
Изменить формулу olimpus Microsoft Office Excel 5 12.12.2009 05:45
обновление в блоге - Решение задач: как программе удалить саму себя или как изменить название исполняемог Pblog Обсуждение статей 0 27.06.2009 23:20
как изменить формулу Joner Microsoft Office Excel 3 08.01.2009 16:44