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

Страницы: 1
Меняется порядок столбцов при загрузке данных с листа excel в Power Query
 
Добрый день, коллеги.
Прошу совета по след. вопросу
Загружаю данные с листа excel через PQ. Запрос присваивает столбцам в которых есть данные заголовки по умолчанию Column1, Column2  и тд. При выводе этого запроса в редакторе происходит сортировка этих столбцов не по порядковым номерам а столбцов, а по текстовому критерию Column1, Column10,... Column19, Column2 и, соответственно,  порядок столбцов в запросе становится отличным от порядка столбцов на листе excel с данными. Можно конечно в формуле PQ поменять порядок столбцов, но... наверняка есть более правильный способ. Может что-то  в настройках необходимо поменять (локаль, или что еще)? Ранее такой проблемы не было порядок столбцов в запросе по умолчанию был Column1, Column2 и т.д. Подскажите, пожалуйста, в чем может быть дело?
Спасибо
отловить частичное соответствие текстовых строк в DAX
 
Коллеги, привет.

Только начал осваивать dax - прошу не пинать, если что-то простое спрашиваю. Пытаюсь в модели данных создать вычисляемый столбец (в "тблКудаПодтягиваем"), в который пытаюсь подтянуть, соответствующее значение из другой таблицы (из "тблОткудаТянем"). Если значения в двух таблицах полностью совпадают, то через lookupvalue могу подтянуть (в  "тблКудаПодтягиваем1"). Вопрос в том как подтянуть соответствующее значение если совпадение частичное. соответственно из "тблОткудаТянем" в "тблКудаПодтягиваем" - там совпадение частичные (прилагается файл). Пробовал через search, но не могу сообразить что там куда интегрировать. Прошу подсказать если не кодом то идеей или ссылкой. Заранее благодарю!
Составить один список из нескольких списков макросом, преобразовать двухмерный массив в одномерный
 
Добрый день. Пытаюсь макросом "сверстать" единый список  из нескольких списков в разных столбцах листа. Читал кое-что на форумах, но как-то все не то что надо. Написал, соответственно, макрос который должен работать. Проблема с макросом возникает на самом последнем этапе,  когда вывожу на лист собственно единый список (одномерный массив) -  на лист выводится список (массив), все значения которого представляют собой первый элемент общего списка. Выводить значения списка на лист через цикл не хочу (в крайнем случае выведу. если не пойму в чем косяк в моем макросе). Прошу подсказать в чем косяк с выводом на лист массива.
Неправильно отрабатывает вот эта строка макроса, но возможно проблема где-то с размерностью
Спасибо заранее
Код
'печатаем на лист массив со значениями
ShMapping.Range("N1:N" & ItemList.Count) = PrintOutItems
вставить функцию двссыл в суммпроизв ошибка #знач
 
Добрый день, коллеги
прошу подсказки по след. вопросу. Пытаюсь интегрировать(вставить) ДВССЫЛ в функцию СУММПРОИЗВ и получаю ошибку #ЗНАЧ.  Подскажите плиз в чем косяк? При просмотре этапов вычисления формулы, вижу что ошибка как-то связана с массивом, но как именно - не понимаю (возможно с форматом ячеек). В приложении  файл с примером. Там все понятно (непонятно только как вылечить ошибку).
Спасибо
создать список(таблицу) на базе диапазона значений в производном месте листа
 
Добрый день, Хочу посоветоваться по след вопросу.
Пытаюсь сослаться на диапазон значений (представленный в столбце таблицы) из производного места листа (или книги). Пытаюсь получить такой же диапазон значений как и в таблице, но в другом месте листа. Значения диапазона при этом вставляются не с первого порядкового номера диапазона, а с порядкового номера строки откуда пытаюсь сослаться. Так и должно быть? excel 2010.Подскажите плиз как правильно сослаться?
Подставить в формулу диапазон из другого листа по названию столбца
 
Доброй ночи уважаемые коллеги. Прошу помощи. Пытаюсь доработать след формулу
Код
=суммпроизв(суммеслимн(диапазон суммирования; диапазон критериев; критерий (в виде именнованного диапазона)))
так, чтобы ссылка на диапазон суммирования/ критериев был относительной. Суммирую данные с разных листов и необходимо в формуле сослаться на имя этого листа, которое находится в строке 1 соответствующего столбца. Чтобы добиться относительной ссылки, пытаюсь сослаться на букву соответсвующего столбца через ДВССЫЛ, но получаю  ошибку. Приложен файл, в нем на Лист1 собираю данные.  в столбце B  - работающая формула с абсолютной ссылкой на лист, с которого собираю данные, В столбце C неработающая формула с относительной ссылкой.  Прошу подсказать где ошибка в формуле в ячейке С2(например). Спасибо.
Удалить строку из двухмерного массива по условию VBA
 
Добрый день, уважаемые коллеги.  Пытаюсь удалить строку из массива 1 по условию (если значение одного из элементов в строке массива 1 равно, например 0). Понимаю, что оптимальное решение для этого - заполнить другой массив (массив 2), в который необходимо записать строки из массива 1, которые удовлетворяют установленному  выше критерию. Написал код ниже, но опять вылазит какая-то проблема с размерностью массива. Вроде в этой строке косяк: Revised(g) = Table(i), Подскажите плиз, что поправить ? Файл откуда записываю данные в массив 1 прилагаю
Код
    Dim Table()
    Dim Revised()
    Dim lLastRow  As Long, i As Long, g As Long
        
    lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Table = Range("A1:I" & lLastRow).Value
    
    For i = 1 To lLastRow
    If Table(i, 8 )<> 0 Then
    For g = 1 To lLastRow
    Revised(g) = Table(i)
    Next g
    End If
    Next i
 
отобразить номер недели по дате в массиве VBA
 
Коллеги, добрый день. Пытаюсь отобразить номер недели на основании даты в массиве VBA (потом планирую выгрузить массив с номерами недели на лист в колонку B см файл). Написал код ниже, но получаю ошибку. Подскажите плиз что не так с кодом. Прилагаю файл на всяк. случай также . Спасибо!
Код
Sub Тест()
Dim Data()
Dim Result()
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Data = Range("A1:A" & lLastRow)
    
    ReDim Result(1 To lLastRow)
For i = 1 To lLastRow
Result(i) = DatePart("ww", DateValue(Data(i)))
Next i
      End Sub
Попарно перемножить строки одномерных массивов VBA и записать результат в третий и на лист
 
Коллеги, прошу помощи по, насколько я понимаю, достаточно простому вопросу. Есть 2 одномерных массива, созданных в VBA. Пытаюсь написать код, чтоб результат построчного перемножения этих двух массивов записывался в третий массив, а оттуда уже выводился на лист.  Файл с примером приложен.Код ниже. Возникли проблемы:
  • Во-первых сам код отрабатывает некорректно - подскажите плиз где поправить
  • Код работает медленно. Так и должно быть?
Спасибо!

Код
Dim Qty() As Variant
Dim Price() As Variant
Dim Total() As Variant

     
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

ReDim Qty(1 To lLastRow)
ReDim Price(1 To lLastRow)
ReDim Total(1 To lLastRow)



For i = 2 To lLastRow
Qty(i) = Cells(i, 1)
Next i

For j = 2 To lLastRow
Price(j) = Cells(j, 2)
Next j


For h = 2 To lLastRow
For i = 2 To lLastRow
For j = 2 To lLastRow

Total(h) = Qty(i) * Price(j)

Next j
Next i
Next h

For g = 2 To lLastRow
For h = 2 To lLastRow
Cells(g, 4) = Total(h)
Next h
Next g
сопоставление значений именного диапазона с частью строки из списка
 

 Добрый день, уважаемые коллеги!

Пытаюсь сопоставить значения из именного диапазона с частью строки из списка.Знаю тема избита - не ругайте. Как сопоставить значения именного диапазона со значениями из списка (не частью) приблизительно представляю (внизу код). У меня не получается сделать upgrade этого кода, чтобы выявлять соответствие частично. В приложенном файле формулой выразил, то что хочу получить на выходе. Буду очень благодарен, если подскажите как выразить это в VBA (в идеале на базе моего кода ниже)

Спасибо

Код
Sub Макрос8()
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row

If Application.WorksheetFunction.CountIf(Range("Мебель"), Cells(i, 1)) > 0 Then Cells(i, 1) = 1

Next i
End Sub
очередная разновидность суммирования диапазона по критериям, именнованый диапзаон в качестве критерия для суммирования двухмерного диапазона
 
Доброго всем дня!

Пытаюсь просуммировать значения из двухмерного диапазона на основании нескольких критериев, одним из которых выступает именной диапазон. Если бы был одномерный диапазон мог бы испозовать суммпроизв(суммеслимн…, но как применить эту формулу к двухмерному диапазону  - не могу сообразить. С другой стороны для двхмерного диапазона мог бы использовать формулу масива сумм(критерий*диапазон), но как задать критерий в виде именного диапазона тоже не могу понять. Подскажите, плиз, коллеги - наверняка же есть какое-нить красивое решение!   Из приложенного файла в должно быть понятно в чем загвоздка...
соотнести значения из нескольких ячеек на соответствия, оптимизировать существующий код
 
Добрый день! пытаюсь написать макрос который бы помогал выявлять несоответствие в значениях у пары ячеек. Идея в том, чтоб определенному значению одной ячейки соответствовало определенное  (но не обязательно идентичное со значением первой ячейки) значение в другой ячейке. Написал код (ниже), где сравниваю обозначение валюты и ее курс. Вроде код работает, но ... подскажите плиз можно ли его как-нибудь оптимизировать, упростить (возможно, необходимо использовать оператор, который я не знаю)? Хочу вообще отказаться от inputbox ов, т.к. важны не абсолютные значения, а именно несоответсвия в парах (например первые три строки (с разными курсами) - эталонные соответствия, а остальные строки чтоб с ними сравнивались) . за любые комменты Спасибо!
Код
LastRow = Cells(Rows.Count, 6).End(xlUp).Row
    Application.ScreenUpdating = False
    
    EUR = InputBox("ввести курс евро ЦБ") 'eur=70
    USD = InputBox("ввести курс доллара ЦБ") 'USD=60
    GBP = InputBox("ввести курс фунта ЦБ") 'USD=80
    
    For r = 1 To LastRow 'проверяем евро
    If Cells(r, 6) = "EUR" Then
    If WorksheetFunction.CountIf((Cells(r, 7)), EUR) = 1 Then
    Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 5296274
    Else: Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 255
    End If
    End If
    Next r
    
    For r = 1 To LastRow 'проверяем доллары
    If Cells(r, 6) = "USD" Then
    If WorksheetFunction.CountIf((Cells(r, 7)), USD) = 1 Then
    Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 5296274
   Else: Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 255
    End If
    End If
    Next r
    
 For r = 1 To LastRow 'проверяем фунты
    If Cells(r, 6) = "GBP" Then
    If WorksheetFunction.CountIf((Cells(r, 7)), GBP) = 1 Then
    Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 5296274
   Else: Range(Cells(r, 6), Cells(r, 7)).Interior.Color = 255
    End If
    End If
    Next r
внести изменение в нумерованный диапазон VBA, вариации на тему нумерация диапазона по условию
 
Добрый день! Пытаюсь написать макрос, который бы прерывал нумерацию диапазона в зависимости от условия и начинал нумеровать диапазон далее начиная с 1. Если на примере, пытаюсь сделать чтоб нумерация (в колонке A) прекращалась, если в диапазоне  (колонке С) встречается определенное слово (например "яблоко" - см мой файл с примером), ну или чтоб нумерация заканчивалась на определенном слове (например "геркулес"). Что-то туплю уже долго - прошу профи поправить мой код ниже. Пытался найти ответ на сайте - не нашел. Если есть, прошу тыкнуть!

Спасибо!
 
Код
LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count    'определяем размеры таблицы
    Application.ScreenUpdating = False
N = 1

For r = 1 To LastRow Step 1
    'если значение в ячейке в строке i столбца 3 = непустая и строка не скрытая, то
    If Cells(r, 3) <> "" And Rows(r).Hidden = False Then
                
        Cells(r, 1) = N
        N = N + 1
        
    End If
    Next r
 
   
Установить соответсвие значения ячйки именному диапазону
 
Уважаемые спецы, прошу вашей помощи! делаю первые шаги в VBA. Пытаюсь написать макрос, который бы скрывал строки таблицы, если значения в определенных ячейках этой таблицы соответсвовали бы именному диапазону. Предполагается,  что и таблица и именной диапазон могут обновляться. Если наглядно, то создал именной диапазон - "мебель"(на листе 1). Хочу чтоб в таблице (диапазоне)(на листе 2), если в колонке 2 всречается значение из диапазона "мебель", чтоб эта строка была  скыта. Собрал следующий код
Код
Sub рабочийвариант()
    LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count    'определяем размеры таблицы
    Application.ScreenUpdating = False
    For r = LastRow To 1 Step -1           'проходим от последней строки до первой
        x = WorksheetFunction.Match(Cells(r, 2), Range("мебель"), 0)
        Cells(r, 3) = IIf(IsEmpty(x), "не ок", "скрыть")
        If Cells(r, 3) = "скрыть" Then Cells(r, 3).EntireRow.Hidden = True 'если в строке пусто - скрываем ее
    Next r
End Sub
буду очень благодаен за любые комменты
Страницы: 1
Наверх