Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Просмотр сообщений

Сообщения - Nurbol

#1
можно сделать на гугл таблицах и подключить телеграмм или электронную почту
#2
По цветам не угадал,
Но все сделал через условное форматирование
#3
а фукнция СЖПРОБЕЛЫ никак не подходит?
#4
добрый день всем.
Подскажите, пожалуйста.
Три вопроса, связанных между собой.
1. Как создать массив?
2. Как создать запрос по результатам выборки из таблицы по определенному полю (полям)?
3. Как передать в массив результат запроса?


#5
Вот ровно так, как в примере: несколько городов, или несколько фио, соответственно.
#6
пытался вчера ответить, но похоже опять вчера оппозиционер ссушенный вещал - отрубили интернет.
в общем, получилось, как описано, но вот вариант, когда нужно выбрать в столбце значений "город", то в некоторых выдает ошибку "Error".
Очевидно, что это там, где несколько значений. например, в один месяц один сотрудник едет в несколько городов. Или в один город в один месяц едут несколько сотрудников.
вопрос: что делать?

#7
Цитата: Дмитрий Щербаков(The_Prist) от 08.06.2018, 16:53:34
Если у Вас 2010 и выше, то можно использовать PowerQuery..
Что за зверь. Ща гляну
#8
Доброго времени вам
Есть файл, некий план командировок.
Выглядит он из граф: ФИО - город - период
Ну, то есть, кто когда и куда поедет.
Нужно сделать что-то похожее на сводную таблицу. пытался через сводные сделать - но там на пересечении результат в виде арифметического действия (сумма и т.п.)
А нужно сделать сводную, в которой строки - ФИО, столбцы - это периоды, а на пересечении - города командировок.
Ну и обратную сводную: в строках - города, в столбцах - периоды, а на пересечении - ФИО сотрудника.
Что-то вроде перекрестного запроса получается
Подскажите, как это сделать малой кровью?

Файл прилагаю
#9
перетащите вручную в сводной таблице в том порядке, какой именно вам нужен.
#10
Только пока не разобрался, как работать с шаблонами
.Pattern = "(FV)?[-#0-9?/]{6,}" 

Может дадите направление, где лучше всего почитать, что-то толком не могу сориентироваться
#11
В общем, решил выложить полный код, который в результате получился у меня.
Кому-то в помощь, а кто-то может критику подаст.
Всему буду рад.

Function BNBFinder(NaznacheniePlatezha As String, ListBazyPoiska As String, StolbecFIO As Integer, StolbecDBZ As Integer) As String
    '
    '
    '
    'NaznacheniePlatezha - ячейка Назначение платежа из банковской выписки текст которой будет анализироваться
    'ListBazyPoiska - Название листа, в котором находятся все разнородные данные из базы и откуда будет производиться поиск
    'StolbecFIO - номер столбца, содержащий ФИО должника, которого требуется определить
    'StolbecDBZ - номер столбца, содержащий ДБЗ должника, которого требуется определить
    '
    '
    '
   
    Dim SheetNumber As Integer
    Dim t As String
    Dim nurbol As String
    Dim x As Integer
    Dim r
    Dim s
    s = ""
   
    SheetNumber = Worksheets(ListBazyPoiska).Index
    t = NaznacheniePlatezha
    t = Replace(NaznacheniePlatezha, Chr(10), "") 'удаляем переносы строк
   
    With CreateObject("VBscript.RegExp")
        .Global = True
        .Pattern = "(FV)?[-#0-9?/]{6,}"
        If .test(t) Then
            For x = 0 To .Execute(t).Count - 1
                Set r = Sheets(SheetNumber).UsedRange.Find(.Execute(t)(x), lookat:=xlWhole)  'xlPart)   'xlWhole)
                    If Not r Is Nothing Then
                        s = s + "ФИО: " & Sheets(SheetNumber).Cells(r.Row, StolbecFIO) & Chr(10) & "ДБЗ: " & Sheets(SheetNumber).Cells(r.Row, StolbecDBZ) & Chr(10)
                    End If
            Next x
             
            If Len(s) > 0 Then
                nurbol = Left(s, Len(s) - 1)
            Else: nurbol = ""
            End If
        End If
    End With
    BNBFinder = nurbol
End Function
#12
Цитата: sboy от 04.05.2018, 09:26:51
это определяется параметром поиска, можно изменить на поиск части
понятно, будем пробовать

Цитата: sboy от 04.05.2018, 09:26:51вместо четверки и напишите какой столбец нужен. Или он не известен заранее?
Да, неизвестен. Точнее, известен, но нужно передать его в параметрах функции так как разные пользователи с разными файлами. Но здесь я попробую сам. Если не получится - тогда к вам обращусь. Пока не хочу сильно тревожить - итак хорошо помогли, чтобы отвлекать на такие мелочи.

Цитата: sboy от 04.05.2018, 09:26:51перебирает и соединяет все
А вот это интересно. Есть возможность, как-то их в массив, что ли, собирать, а выдавать по индексу, который передается вместе с параметрами функции?

Цитата: sboy от 04.05.2018, 09:26:51тут не подскажу, т.к. работаю только на 2010, нет возможности проверить. В 2010 тоже не находит (из-за пробела)
Ладно, будем экспериментировать. Может "lookat:=xlPart" поможет.
lookat:=xlPart


Спасибо огромное.
#13
Коллеги, подскажите одну вещь
Сделал таблицу в Гугл, раздает задания сотрудникам.
Сотрудник отчитывается тоже в Гугле.
Связал Гугл с телеграммом: сделал бота, который на запрос номера входящего письма выдает информацию об исполнителе, статусе исполнения и дате исполнения (если исполнены, конечно)

Хочу добавить туда, чтобы сотрудник мог отправить свои координаты из Телеграмма.
В Гугл таблицу будут вноситься координаты целевой точки.
Нужно, чтобы при получении определять расстояние от целевой точки до полученных координат.
Проще говоря, контролировать своих сотрудников, получая подтверждение, что он фактически побывал в требуемом месте.

Первая проблема - получить координаты из Телеграмм - по этому вопросу буду в другом месте рыть, но если есть знающие - буду только рад.
А вот подходящая для форума проблема - это вторая: рассчитать расстояние - пока не представляю как.
Может дадите волшебного пендюля в правильном направлении?
#14
пока что выявил, что на 2016 и на 2013 офисе ведет себя по разному
на 2016 офисе поиск осуществляется точно по подстроке. Т.е. значение в ячейке должно точно соответствовать искомой подстроке
Это не в формуле, а в офисе видимо дело. Если искать подстроку, которая на 1 ячейку короче, чем значение в ячейке определенной, то офис ее не находит. А если добавить звездочку ("*"). то CTRL+F находит. Также видимо действует и формула.
Но допиливать надо будет именно формулу.

А как задать в формуле столбец, из которого нужно брать результирующее значение?
Понял, что нужно будет вставить ее здесь "s = Sheets(2).Cells(r.Row, 4)" вместо четверки, и понял, что нужно передать ее в параметрах функции. А как? Ну если совсем не сложно. Если сложно - буду сам разбираться.

Другой вопрос: а что делает функция, если в ячейке несколько возможных вариантов? Выводит первый попавшийся?
А как выводить все варианты?

И - да! в 7 строке есть пробел (а точнее символ переноса вроде).
Как вот здесь реализован поиск? Дело в том, что в 2016 Ексель нашел Кузнецову, а в 2013 - не нашел.

#15
Это похлеще чем я предполагал.

Круть ваще жуть!
Жуть как круть!

Куча вопросов, но не сейчас.
Пару дней занят сильно, после завтра сяду протестю.

Спасибо огромное в любом случае!
Я уж не надеялся...
Яндекс.Метрика Рейтинг@Mail.ru