Страницы: 1
RSS
Работа с массивом данных (за деньги)
 
Добрый день.

Нужно решить две несложные задачи. Существует массив данных, нужно вытащить из него некоторую информацию. Вся информация есть в приложенном файле.

Бюджет небольшой (500руб). Надеюсь найдется мегомозг, кто сможет эту задачу решить за 10 минут, не думаю, что со знанием дела она займет больше времени.

Есть кто нибудь, кому это интересно?
 
Дывлюся  я.
Уже  6 часов нет желающих заработать 500 р за 10 минут.
Могу предложить вариант - вы платите 500 р, я работаю 10 мин.
Что получилось, то получилось.
Подойдет?
 
Котяра, возьми в помощники - справимся за 5 минут. Но на твоих условиях: As is  :)
 
-За сколько сделаешь?
-За день
-А за два можешь?
-??? Могу.
-А за неделю?
-За неделю нет, помощник нужен.
:D
 
27 минут
как просили - "структуру создавать не нужно"
Код
Option Explicit

Sub t()
  Dim a(), wData As Worksheet, w1 As Worksheet, w2 As Worksheet
  Dim dm As Object, i&, df As Object, d As Object, s$, e, sDate$, ii&, j&, ee, jj&
  Set dm = CreateObject("scripting.dictionary")
  Set df = CreateObject("scripting.dictionary")
  With ThisWorkbook
    Set wData = .Sheets("Data")
    With wData
      a = .Range(.[a2], .Cells(wData.Rows.Count, 1).End(xlUp)).Resize(, 7).Value
      sDate = Format(.[f2], "mmmm yyyy")
    End With
    For i = 1 To UBound(a)
      s = a(i, 3) & "|" & a(i, 2) & "|" & a(i, 5) & "|" & a(i, 7)
      If Not df.exists(a(i, 1)) Then df(a(i, 1)) = df.Count + 1
      If dm.exists(s) Then Set d = dm(s) Else Set d = CreateObject("scripting.dictionary")
      d(a(i, 6) & "|" & a(i, 4)) = df(a(i, 1))
      Set dm(s) = d
    Next
    With .Worksheets.Add
      .Name = "w1": i = 1
      For Each e In dm.keys
        i = i + 1
        .Cells(i, 1) = i - 1
        .Cells(i, 2).Resize(, 4).Value = Split(e, "|")
      Next
    End With
    With .Worksheets.Add
      .Name = "w2": .[c2] = sDate: i = 4: ii = 1
      For Each e In dm.keys
        .Cells(i, 1) = ii
        .Cells(i, 3) = Split(e, "|")(0)
        .Cells(i, 9) = Split(e, "|")(2)
        .Cells(i, 13) = Split(e, "|")(1)
        Set d = dm(e): jj = i + 3
        For Each ee In df.keys
          .Cells(jj, 2) = ee
          .Cells(jj, 1) = df(ee)
          jj = jj + 1
        Next
        For Each ee In d.keys
          .Cells(d(ee) + i + 2, Day(Split(ee, "|")(0)) + 2) = CInt(Split(ee, "|")(1))
        Next
        i = i + df.Count + 4: ii = ii + 1
      Next
    End With
  End With
End Sub
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
ikki пишет:
27 минут
Не уложился. Гонорар не получишь.
 
ннуууу... совсем-совсем?
а если хотя бы часть?

ну... хотя бы вот по пропорции...
10 минут = 500 руб.
27 минут = Х руб
Х = (500 х 27) / 10

а остальное - ладно уж...
не уложился :(
сам фшоке.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Я думаю,что 17 минут можно разделить между котами с кармана провинившегося  :D
Изменено: Doober - 18.07.2014 02:08:12
 
И сразу же стебаться. Я имел в виду, что при прямых руках, которых я сам не имею, это сделать не сложно и не займет много времени.
Все работает, большое спасибо. Куда переводить деньги?
 
написал в личку
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Кинул на телефон. Еще раз спасибо.
 
всё ок.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Написал формулами. Не справился с сортировкой, что было изначально указано в задании. =Счетесли(с2:c24;"<="&c2:c24) - вообще по-иному делала сортировку. Так и не понял, в чём ошибка. Плюнул..
-------------
Саша - круто!!! Научи меня такому ...
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, я бы сказал, что это достаточно примитивный и шаблонный код.
в общем-то, за такое время (в т.ч. один перекур) - он и не мог быть иным.
в этом коде довольно много умолчаний, практически никаких проверок и абсолютно никаких обработчиков ошибок.
мне даже немножко стыдно за него.
ибо такой код неплох в ветке "вопросы", но не в "работе".
именно поэтому я его просто выложил, не слишком рассчитывая на оплату.
надо отдать должное автору темы - оплатил.
даже в таком виде.
правда, после добавления всех проверок и обработок, оптимизации и разукрашивания комментариями код и стоить будет реальные деньги :)  
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
по заявкам радиослушателей нашей передачи:
исправленный и чуть дополненный вариант
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Це еще лучше))
Страницы: 1
Наверх