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

Страницы: 1
СТРОКА и ДВССЫЛ в массиве, для чего?
 
например?
часть текста из ячейки отбора в условии формулы
 
спасибо большое за помощь, очень облегчит труды. последняя формула с "*"&E1&"*"&E2&"*" самой доступной для осознания оказалась )
часть текста из ячейки отбора в условии формулы
 
Доброго дня, уважаемые. Вот такая ситуация

например, мне нужно сложить все суммы по строкам, содержащим название "яблоки" и код "11". в самой таблице-источнике название может быть "яблоки зелёные" или "яблоки красные", а к коду добавляются ещё цифры-индификаторы, например "11+1"

и пока получилось сделать так =СУММЕСЛИМН($I:$I;$H:$H;"=*11*
";$H:$H;"=**яблоки*"  ;)  .

Каким хитрым образом можно в формуле в критерии поиска указать  искомый текст именно формулой, дабы не печатать каждое название и код?


Пример прикрепить не удаётся, поэтому с вашего позволения добавлю сюда

это как бы таблица для поиска

столбец H
111 яблоки зелёные
112 яблоки красные
113 яблоки жёлтые
121 груши зелёные
122 груши красные
123 груши жёлтые

столбец I
1
1
1
3
3
3


Постараюсь позже прикрепить пример в экселе
Изменено: Серёга - 16.01.2013 10:07:18
часть текста из ячейки отбора в условии формулы
 
Доброго дня, уважаемые. Вот такая ситуация

например, мне нужно сложить все суммы по строкам, содержащим название "яблоки" и код "11". в самой таблице-источнике название может быть "яблоки зелёные" или "яблоки красные", а к коду добавляются ещё цифры-индификаторы, например "11+1"

и пока получилось сделать так =СУММЕСЛИМН($I:$I;$H:$H;"=*11*
";$H:$H;"=**яблоки*" ;) .

Каким хитрым образом можно в формуле в критерии поиска указать искомый текст именно формулой, дабы не печатать каждое название и код?


Пример прикрепить не удаётся, поэтому с вашего позволения добавлю сюда
В этой таблице в поле сумма находится формула

код продукция сумма
11 яблоки               3
12 груши               30

А эта таблица для поиска

H                                                        I
код + индефикатор + продукция сумма
111 яблоки зелёные              1
112 яблоки красные              1
113 яблоки жёлтые              1
121 груши зелёные              10
122 груши красные              10
123 груши жёлтые              10


Постараюсь  позже прикрепить пример в экселе
диаграмма - анализ План \ Факт
 
невнимательно прочитал условие. вот так надо
диаграмма - анализ План \ Факт
 
типа так?
Сводная таблица, % от подитога
 
{quote}{login=}{date=29.09.2011 04:00}{thema=}{post}Вроде так{/post}{/quote}  
 
Уважаемый Аноним!  
Расскажите пожалуйста как настраивали эту таблицу?
Сводная таблица, % от подитога
 
ВАУ! А в чем секрет фокуса?
Сводная таблица, % от подитога
 
Добрый день!  
В сводной таблице (см пример) надо проставить % от подитога. Можно ли такое сделать? Эксел 2010.  
Спасибо.
Заполнение строки данными из столбца
 
Используйте Специальная вставка/Транспонировать
отбор уникальных значений из диапазона
 
Чем не устраивает размер файла? У Вас что, интернет не безлимитный?
Помощь в однофакторном планированном эксперименте
 
xlsx неудобно открывать. Лучше сохраняйте в XLS
отбор уникальных значений из диапазона
 
{quote}{login=nerv}{date=21.09.2011 02:13}{thema=}{post}>>у меня так нигде не используется  
Я тож не сторонник. А еще я думаю, что незачем изобретать велосипед  
 
Swap1 = NoDupes(i)  
Swap2 = NoDupes(j)  
NoDupes.Add Swap1, before:=j  
NoDupes.Add Swap2, before:=i  
NoDupes.Remove i + 1  
NoDupes.Remove j + 1  
 
Я бы сделал так  
 
sub io()  
Dim v, i&  
on error resume next  
with new Collection  
For Each v in [A1:C10].value
.add v,cstr(v) ' по желаню суда еще можно добавить удаление пробелов  
next  
redim v(1 to .count, 1 to 1)  
For i = 1 to .Count: v(i,1) = .item(i):next  
end with  
end sub{/post}{/quote}  
 
Так это у меня тремя строками.  
 
For Each cell In InRange    
   NoDupes.Add cell.Value, CStr(cell.Value)  
Next cell  
 
А Swap используется для сортировки отобранного массива. Это велосипед САМОГО Уокенбаха!
отбор уникальных значений из диапазона
 
{quote}{login=Hugo}{date=21.09.2011 02:02}{thema=}{post}Понял, в чём дело - у Вас в начале кода прописана директива  
 
Option Base 1  
 
Без этого будет работать с ошибкой!  
Нужно это публиковать вместе с кодом, а то народ наработает...  
А лучше код исправить, т.к. по умолчанию таких директив ни у кого нет, у меня так нигде не используется.{/post}{/quote}  
 
Консенсус!  
Option Explicit  
Option Base 1  
У меня только в этом модуле есть эти строки. Видать начитался умных книжек, эксперементировал )))). Сейчас бы и не вспомнил, зачем оно нужно.
отбор уникальных значений из диапазона
 
{quote}{login=Hugo}{date=21.09.2011 01:53}{thema=}{post}Так я же не просто так - проверил.  
Вот даже файл ещё открыт - из  
1  
2  
1  
3  
 
выдало    
1  
2{/post}{/quote}  
 
Неправильный у Вас Эксел (пиратский наверно :-))))! У меня в этом примере всё правильно выдал!!!  
1  
2  
3
отбор уникальных значений из диапазона
 
{quote}{login=Микки}{date=21.09.2011 01:37}{thema=}{post}Мне очень нужна подобная надстройка но у меня какая-то беда с ними в силу моей неграмотности видимо..  
Вот фото того что у меня подключено...{/post}{/quote}  
 
Сделайте свою надстройку, а в неё всё нужное запихните - удобнее чем с личной книгой макросов. А чтоб процедуру вставить в контекстное меню:  
 
Public Sub КонтекстноеМенюЯчейки()  
Dim Km As CommandBarControl  
   Set Km = CommandBars("cell").Controls.Add  
   With Km  
       .Caption = "ВыборУникальныхЗначений" 'модуль  
       .OnAction = "ОтборУникальныхЗначений" 'процедура  
   End With  
End Sub  
Запустите и контектное меню изменится. Чтобы убрать нововведения:  
 
CommandBars("Cell").Reset Восстановление первоначального контекстного меню  
 
У Уокенбаха всё хорошо описано.
отбор уникальных значений из диапазона
 
{quote}{login=Hugo}{date=21.09.2011 01:34}{thema=}{post}Это я был.  
Повторюсь:  
 
 
Есть замечания по коду:  
 
1.ВАЖНО!!! - Ошибка - выгружается на одно значение меньше!!! Последнее пропадает.  
Ошибка тут:  
 
ReDim ND(NoDupes.Count) 'перемещаем коллекцию в массив  
For i = 1 To NoDupes.Count  
   ND(i) = NoDupes.Item(i)  
Next i  
 
2. Если уж перегружаете в массив, то перегружайте в двумерный, чтоб выгружать без Transpose - это позволит работать с большим количеством, и в 2000 Экселе тоже.{/post}{/quote}  
 
Не согласен - Проверено неоднократно - выгружает точное количество уникальных и по количеству тоже пока нет проблем!
вопрос по созданной диаграмме
 
скопируйте i48:i56 и специальной вставкой "Связанный рисунок вставьте в нужное место"
помогите сосчитать количество ячеек каждого вида
 
Вставт в ячейку С2 формулу =СЧЁТЕСЛИ(A2:A19;A2)
отбор уникальных значений из диапазона
 
Я пользуюсь этим. Сделано по материалам форума :-). Вставил в контекстное меню - очень доволен  
 
Sub ОтборУникальныхЗначений()  
' Программа отбирает уникальные значения из выделения, сортирует и вставляет из в указанное место  
Dim InRange As Range, cell As Range, OutRange As Range  
Dim NoDupes As New Collection  
Dim ND() As String, MSG As String  
Dim i As Integer, j As Integer  
Dim Swap1, Swap2  
 
Set InRange = Selection 'предварительно выделенный диапазон  
On Error Resume Next  
For Each cell In InRange 'Используется свойство коллекшен принимать только уникальные значения  
   NoDupes.Add cell.Value, CStr(cell.Value)  
Next cell  
On Error GoTo 0  
 
MSG = "Всего элементов: " & InRange.Count & vbCrLf  
MSG = MSG & "Уникальных элементов: " & NoDupes.Count  
MsgBox MSG, , "Выделено"  
     
For i = 1 To NoDupes.Count - 1 'пузырьковая сортировка массива уникальных значений  
   For j = i + 1 To NoDupes.Count  
       If NoDupes(i) > NoDupes(j) Then  
           Swap1 = NoDupes(i)  
           Swap2 = NoDupes(j)  
           NoDupes.Add Swap1, before:=j  
           NoDupes.Add Swap2, before:=i  
           NoDupes.Remove i + 1  
           NoDupes.Remove j + 1  
       End If  
   Next j  
Next i  
 
ReDim ND(NoDupes.Count) 'перемещаем коллекцию в массив  
For i = 1 To NoDupes.Count  
   ND(i) = NoDupes.Item(i)  
Next i  
 
On Error Resume Next  'куда вставлять отобранные и сортированные данные  
Set OutRange = Application.InputBox(Prompt:="Выделите ячейку, куда вставить данные", _  
   Title:="Куда вставить?", Type:=8)  
On Error GoTo 0  
 
If OutRange Is Nothing Then ' если нажата кнопка "отмена"  
   MsgBox "Действие отменено"  
Else ' Выводим выходной массив в указанное место  
   OutRange.Resize(NoDupes.Count, 1).Value = WorksheetFunction.Transpose(ND)  
End If  
 
End Sub
Проверка вложенных папок VBA
 
Спасибо большое! Всё подошло.    
Красиво написано, блин, завидно...
Проверка вложенных папок VBA
 
Подскажите пожалуйста решение проблемы.  
Требуется в определенной папке с вложенными подпапками найти все файлы, начинающиеся с "Счет", последовательно открыть каждый, произвести определенные действия и закрыть, затем следующий файл и т.д. Макрос ниже производит всё это только с файлами в первой папке, не заходя во вложенные.  
Как научить эксел проверять вложенные папки?    
 
Sub Dir_()  
   Dim v_Path As String, v_FileName As String, v_Mask As String  
   v_Path = "C:\Documents and Settings\batyuksv\Мои документы\00\"  
   v_iFileName = Dir(v_Path, 7)  
   v_Mask = "Счет"  
   Do While v_iFileName <> ""  
       If Left(v_iFileName, 4) = v_Mask Then _  
       Workbooks.Open v_Path & v_iFileName  
'        ляляляля  
       ActiveWindow.Close  
       v_iFileName = Dir  
   Loop  
End Sub
Неправильно работает макрос
 
{quote}{login=The_Prist}{date=18.05.2010 09:13}{thema=}{post}  
При получении формулы через Formula, все данные преобразуются в английские настройки, включая то, что запятая меняется на точку ибо является в англ.версии разделителем целой и дробной части. Поэтому здесь целесообразней применить FormulaLocal.{/post}{/quote}  
 
Ну что сказать...  
Пришел, увидел, победил.  
Большое спасибо!
Неправильно работает макрос
 
{quote}{login=}{date=18.05.2010 08:39}  
предположение... может проблема в запятой? может получить значение ячейки как текст заменить запятую на точку,изменить знак - , заменить   точку на запятую и назад в ячейку{/post}{/quote}  
 
Надо попробовать... Но почему с одними числами правильно работает, а с другими нет???
Неправильно работает макрос
 
При копировании из САПа у отрицательных чисел минус стоит после числа, например 256,093-. Сделал макрос по переносу минуса перед числом.  
 
Sub ПереносМинусовSAP()  
Dim i As Variant  
Dim InRange As Range, cell As Range  
Set InRange = Selection 'предварительно выделенный диапазон  
On Error Resume Next  
For Each cell In InRange '  
   i = cell.Formula  
   If Right(i, 1) = Chr$(45) Then  
       i = "-" & Left(i, Len(i) - 1)  
   End If  
   cell.Formula = i  
Next cell  
End Sub  
 
Но не со всеми числами данный макрос работает коррекно. В прикрепленном файле запустите макрос на выделении: 256,093- превратится в -256093,00. В чем проблема?
Типа промежуточных итогов в VBA
 
Спасибо, Юрий! То, что надо!
Типа промежуточных итогов в VBA
 
Понятно, вот более четкая постановка задачи. Надо сделать макросом.
Типа промежуточных итогов в VBA
 
Нет, отличие в том, что в первой таблице платежки состоят из нескольких сумм, а во второй платежка стоит одной итоговой суммой.
Типа промежуточных итогов в VBA
 
Добрый день! С наступившим!  
Как в VBA реализовать что-то вроде промежуточных итогов при каждом изменении номера платежного поручения (см прикрепленный файл)? Причем колонки с накладными должны остаться в первоначальном виде. Никак не могу придумать алгоритм.
Страницы: 1
Наверх