Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Excel VBA (часть 3)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

Открыть новую тему     Написать ответ в эту тему

partisan71

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Видеоинструкция Операторы слияния таблиц SQL JOIN в Excel Power Query.

Спасибо добрый человек!

Всего записей: 4 | Зарегистр. 02-04-2014 | Отправлено: 15:08 25-01-2024
AndVGri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
frb_noname
 
Раз i=1, то скорее всего у вас в первой ячейке видимого диапазона строковый заголовок отфильтрованного столбца таблицы. Да и какой смысл в активации ячейки перед тем как получить её значение? Лучше так.

Код:
 
    For Each firstCell In Y.Cells.SpecialCells(xlCellTypeVisible)
        If Application.WorksheetFunction.IsNumber(firstCell.Value) Then
            mystr(i) = firstCell.Value
            i = i + 1
            MsgBox mystr(i)
        End If
     Next  
 

Fsp050
Вам может лучше сюда? Тем более что вас несколько человек с коллегами, а что-то писать код не один из вас не начал.

Всего записей: 750 | Зарегистр. 14-12-2005 | Отправлено: 04:34 05-12-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrewkard1980
а мне не сможете помочь? Только на Вас и надежда

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 10:47 03-12-2014
frb_noname

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
i=1  

Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 09:03 03-12-2014
andrewkard1980

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
frb_noname
Какое значение і при ошибке?

Всего записей: 209 | Зарегистр. 01-05-2010 | Отправлено: 02:28 03-12-2014
frb_noname

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Подскажите пожалуйста, что делаю не так с массивом (в него нужно будет записать данные каждой активной ячейки колонки из отфильтрованного диапазона)
 

Код:
 
 
Dim i As Integer
Dim mystr(1 To 10) As Single
i = 1
 
  Sheets("zvonki").Select
    With ActiveSheet  
      Set Y = .Range("G2:G" & .Cells(.Rows.Count, "G").End(xlUp).Row)
    End With
   
    For Each firstCell In Y.Cells.SpecialCells(xlCellTypeVisible)
      With firstCell
        firstCell.Activate
        mystr(i) = ActiveCell.Value
        i = i + 1
        MsgBox mystr(i)
      End With
    Next
 
 

 
На строке          
mystr(i) = ActiveCell.Value  
ошибка typemismatch (RunTimeError 13)
 
Спасибо.

Всего записей: 47 | Зарегистр. 03-11-2008 | Отправлено: 11:27 02-12-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите, пожалуйста, вопрос такой же из серии описания корр. анализа, но только уже кросс табы
Помогите пожалуйста, решить задачу сходную с описанием корреляционного анализа , но тут автоматическом описании результатов кросстабов (перекрестных таблиц).
Например, это одно из результатов кросс
 
http://rghost.ru/59366557
Принцип описания должен следовать такому порядку.
 
Первоначально мы описываем максимально число. В этом случае: 11 человек (Информация взята из клетки E6), которые принадлежат ко второй группе, по первому вопросу (он первый, т.к. там , цифра 1 стоит в этой колонке I) дали ответ 1, среднее количество людей , а именно 4 Ответили 2 и 3 соответственно (потому что мы имеем такое же количество людей, которые вложили иной ответ, иногда такое бывает)
 
После этого, макросы будут описывать первую группу максимальные, среднее, минимальные значения, аналогичным способом: в то же время в первой группе: 9 человек поставили ответ 3, и так далее /
Конечно же, я не знаю, как, но макрос должен увидеть, какая цифра может быть большой , а какая средней, и какая минимальной
Обязательно, что после каждого описания таблиц макросы должны указать, что различия стат.лостоверны и эти данные (хи-квадрат = 16,557, р ≤ 0,05), взяты из соответствующей ячейки
Ну, после описания первого макросы таблицы начинается описать следующим.
 
На практике это должно быть так
(вводные слова) в изучении взаимосвязи между несколькими качественными характеристиками мы обнаруживаем, что:
Наибольшее количество людей, которые принадлежат к второй группе, а именно 11 человек на первый вопрос ответили 1, средее количество людей, а именно 4 Ответили 2 и 3 соответственно! В то же время (введение слов), наибольшее количество тех, кто принадлежит к первой группе, а именно 9 человек на первый вопрос поставили ответ3 и так далее. Эти различия были статистически значимыми (хи-квадрат = 16,557, р ≤ 0,05)
 
 
курсив вводные слова, которые должны быть записаны в структуре макросов
жирным шрифтом является информация, которую мы видим в наших таблицах
 
 
На самом деле, нам с коллегами часто приходится иметь дело с качественными переменными, такие ,как люди, объекты и так далее и мы можем работать с сотнями подобных или более сложных таблиц, где размерность не 1 на 2, а 10 на 20, как минимум , и мы тратим много драгоценного времени на их описании, это рутинная работа, которая должна быть легче, чтобы не тратить время.
Пожалуйста, помогите.
 

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 17:52 01-12-2014
shune4ka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Знающие люди, помогите написать макрос для логирования.  
 
Суть такая. Есть база данных на листе "общий список".  
Сканнируются баркоды из этого списка.  
По найденному в списке баркоду заполняется форма для печати.  
Есть лист "Скан". Где в первый столбец необходимо логировать все отсканнированные баркоды, которые были найдены. По ним уже формулами подтягивается необходимая информация.  
 
Часть с печатью вроде сделала. Баркод сканнируется в синее поле, находится в столбце B, из строки с баркодом заполняется форма на скрытом листе "new_45".  
А вот с логированием проблема. Бьюсь весь день, а какая-то ерунда получается.  
 
Пробовала сканнирование перенести на лист "скан". Чтобы по заполненной на этом листе строке происходила печать, а данные в табличку подтягивались с листа с базой "общий список", но так не смогла, подтягиваются только Н/Д. Хотя наверное это более оптимальный вариант...  
Помогите, пожалуйста!  
Заранее очень признательна.
Ссылка на файл:
https://drive.google.com/file/d/0B16thjjI9osNWlI5T3hlTlZ4b0E/view?usp=sharing
 
Добавлено:
справилась сама. спасибо

Всего записей: 10 | Зарегистр. 14-01-2008 | Отправлено: 09:50 26-11-2014
Futurism

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
grinchukav
Спасибо Вам, теперь сработало.

Всего записей: 1200 | Зарегистр. 04-02-2011 | Отправлено: 14:01 24-11-2014
grinchukav

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Futurism
Снимите галочку "Ячейка целиком"

Всего записей: 67 | Зарегистр. 28-02-2008 | Отправлено: 13:45 24-11-2014
Futurism

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VictorKos
Может глянете, что тут не так я делаю

как тильду не ставлю , ничего не меняется
http://rghost.ru/59235966

Всего записей: 1200 | Зарегистр. 04-02-2011 | Отправлено: 13:22 24-11-2014
VictorKos



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
да, можно, но вот удалить звездочку автозаменой нельзя.

Как заменить/удалить/найти звездочку

Всего записей: 304 | Зарегистр. 20-03-2005 | Отправлено: 22:46 22-11-2014
Futurism

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
psiho
да, можно, но вот удалить звездочку автозаменой нельзя.

Всего записей: 1200 | Зарегистр. 04-02-2011 | Отправлено: 13:16 21-11-2014
psiho

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Помогите, пожалуйста, написать макрос.
Там где у чисел стоит звездочка(*) не важно сколько, одна, 2, три звезды то число пометить красным цветом.

А зачем Вам макрос? Это же можно сделать простым условным форматированием

Всего записей: 247 | Зарегистр. 26-10-2006 | Отправлено: 20:54 19-11-2014
Futurism

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, написать макрос.
http://rghost.ru/59143337
Там где у чисел стоит звездочка(*) не важно сколько, одна, 2, три звезды то число пометить красным цветом.

Всего записей: 1200 | Зарегистр. 04-02-2011 | Отправлено: 10:20 19-11-2014
litmax

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как решить такую задачу. Она формулами точно не решается. Я пробывал. но для профессионалов, которые любят решать что-то неординарное, она понравится, 100%.
необходимо подсчитать веса слов вот по этой формуле

Ni,k это сколько раз то или иное слово появилось в одном параграфе.
параграф имеется ввиду, там где есть красная строка

 
Nk-сколько раз то или иное слово  появилось во всем тексте
|D| это количество параграфов
Ni,s означает, что в знаменателе находится сумма по всем параграфам, кроме рассматриваемого.
т.е. вот есть 10 параграфов, 9 рассматривается, один нет. когда он рассмотрелся и данные по словам, которые в нем есть уже как бы в числителе, все  с ним работа закончена, начинаете с другим параграфом из 10, и данные этого первого параграфа учитываются в знаменателе.
 
Только можно ли встроить функцию, типа мессейдж бокса, чтобы  можно было настраивать  какое слово можно считать редким, а какое частым.Например, если встретилось больше 10 раз в параграфе, оно частое, а если меньше 3 раз, оно редкое.
например, так, извините за пэинт))

И если вдруг прога заметит, что какое то слово частое или редкое, оно в обсчет по этой формуле не пойдет.
Конечно, нужно учитывать морфологию, чтобы слова синий и синяя для  компа значили одно и тоже. Это делается путем стемминга. сжатый, сжатие, сжимать это одно слово.
 
 
на выходе эксель должен показывать  нечто вроде
слово 1 0,456
слово 2= 0,999
слово 3= 0,576

Всего записей: 9 | Зарегистр. 10-09-2014 | Отправлено: 00:29 15-11-2014 | Исправлено: litmax, 00:30 15-11-2014
ccna



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, друзья!  
 
Есть документ xls с настроенным макросом. В этой таблице формируется отчет поэтажного плана из графической программы. В настоящий момент таблица формирует отчет только по одному этажу, даже если выделены, скажем, с 1 по 17. То есть, действует это ограничение.  
 
Задача: нужно, чтоб формировался отчет по всем этажам. То есть, устранить это ограничение.  
 
Подскажите, как это сделать?  
Заранее спасибо!  
 
 
 
 
Вот содержание таблицы:  
 
' PlanCAD Automation Sample  
' Copyright (C) 2010 by Consistent Software, Inc.  
 
Option Explicit  
 
' вызывается из Планкад  
Sub PT_RunFunc(Objects As PTObjects, ptApp As PTApplication)  
  Dim floor As PTFloor  
  If Objects.Count > 0 Then  
    Dim obj As IPTObject  
    For Each obj In Objects  
      If obj.Type = ptObjTypeFloor Then  
        Set floor = obj  
        Exit For  
      End If  
    Next  
  End If  
   
  If Not floor Is Nothing Then  
    UpdateReport floor, ptApp  
  Else  
    MsgBox "Неверные данные!"  
  End If  
End Sub  
 
' обновить отчет по этажу  
Sub Update()  
 ' получить модель плана  
  Dim ptApp As PTApplication  
  Set ptApp = GetPlanModel  
   
  ' получить этаж по номеру  
  Dim floor As PTFloor  
  Set floor = GetFloorById  
  If floor Is Nothing Then  
    MsgBox "Нет этажа с таким номером!"  
    Exit Sub  
  End If  
 
  ' обновить  
  Sheets("Экспликация этажа").Select  
  UpdateReport floor, ptApp  
   
End Sub  
     
' обновить отчет по этажу  
Sub UpdateReport(floor As PTFloor, ptApp As PTApplication)  
 
  ' площади этажа  
  Dim totalArea As Double, flatArea As Double  
  Dim livingArea As Double, subsdArea As Double, balcArea As Double  
  totalArea = flatArea = livingArea = subsdArea = balcArea = 0#  
   
  ' заполняем данные по помещениям и входящим в них комнатам  
  Dim row As Integer  
  row = 12  
  Dim obj As IPTObject  
  For Each obj In floor.Objects  
    ' квартира  
    If obj.Type = ptObjTypeFlat Then  
      UpdateFlat obj, floor, totalArea, flatArea, livingArea, subsdArea, balcArea, row  
    End If  
  Next  
   
  ' вспомогательные чп (не входящие в помещения)  
  UpdateRooms floor.Objects, Nothing, floor, totalArea, flatArea, livingArea, subsdArea, balcArea, row  
   
  ' èòîãî  
  Cells(row, 1).Formula = ""  
  Cells(row, 2).Formula = floor.floorId  
  Cells(row, 3).Formula = ""  
  Cells(row, 4).Formula = ""  
  Cells(row, 5).Formula = ""  
  Cells(row, 6).Formula = ""  
  ' площадь с учетом неотапливаемых ÷ï  
  If totalArea > 0 Then Cells(row, 7).Formula = totalArea Else Cells(row, 7).Formula = ""  
  ' общая площадь  
  If flatArea > 0 Then Cells(row, 8).Formula = flatArea Else Cells(row, 8).Formula = ""  
  ' жилая  
  If livingArea > 0 Then Cells(row, 9).Formula = livingArea Else Cells(row, 9).Formula = ""  
  ' подсобная  
  If subsdArea > 0 Then Cells(row, 10).Formula = subsdArea Else Cells(row, 10).Formula = ""  
  ' лоджий, балконов  
  If balcArea > 0 Then Cells(row, 11).Formula = balcArea Else Cells(row, 11).Formula = ""  
  ' высота  
  Cells(row, 12).Formula = floor.Height  
  Cells(row, 13).Formula = ""  
  Cells(row, 14).Formula = ""  
  row = row + 1  
   
  ' clear last records  
  While Cells(row, 2).Formula <> "" Or Cells(row, 3).Formula <> "" Or Cells(row, 4).Formula <> ""  
    Range(Cells(row, 1), Cells(row, 14)).ClearContents  
    row = row + 1  
  Wend  
   
End Sub  
 
' обновить информацию о помещении  
Sub UpdateFlat(flat As PTFlat, floor As PTFloor, ByRef totalArea As Double, ByRef flatArea As Double, ByRef livingArea As Double, ByRef subsdArea As Double, ByRef balcArea As Double, ByRef row As Integer)  
 
  ' части помещения  
  Dim flatTotalArea As Double, flatFlatArea As Double  
  Dim flatLivingArea As Double, flatSubsdArea As Double, flatBalcArea As Double  
  flatTotalArea = flatFlatArea = flatLivingArea = flatSubsdArea = flatBalcArea = 0#  
  UpdateRooms flat.Objects, flat, floor, flatTotalArea, flatFlatArea, flatLivingArea, flatSubsdArea, flatBalcArea, row  
   
  ' итого  
  Cells(row, 1).Formula = ""  
  Cells(row, 2).Formula = floor.floorId  
  Cells(row, 3).Formula = flat.FlatId  
  Cells(row, 4).Formula = ""  
  Cells(row, 5).Formula = ""  
  Cells(row, 6).Formula = ""  
  ' площадь с учетом неотапливаемых&#247;&#239;  
  If flatTotalArea > 0 Then Cells(row, 7).Formula = flatTotalArea Else Cells(row, 7).Formula = ""  
  'общая площадь  
  If flatFlatArea > 0 Then Cells(row, 8).Formula = flatFlatArea Else Cells(row, 8).Formula = ""  
  ' жилая  
  If flatLivingArea > 0 Then Cells(row, 9).Formula = flatLivingArea Else Cells(row, 9).Formula = ""  
  ' подсобная  
  If flatSubsdArea > 0 Then Cells(row, 10).Formula = flatSubsdArea Else Cells(row, 10).Formula = ""  
  ' лоджий, балконов  
  If flatBalcArea > 0 Then Cells(row, 11).Formula = flatBalcArea Else Cells(row, 11).Formula = ""  
  ' высота  
  Cells(row, 12).Formula = flat.Height  
  Cells(row, 13).Formula = ""  
  Cells(row, 14).Formula = ""  
   
  totalArea = totalArea + flatTotalArea  
  flatArea = flatArea + flatFlatArea  
  livingArea = livingArea + flatLivingArea  
  subsdArea = subsdArea + flatSubsdArea  
  balcArea = balcArea + flatBalcArea  
  row = row + 1  
 
End Sub  
 
' обновить части помещения  
Sub UpdateRooms(rooms As PTObjects, flat As PTFlat, floor As PTFloor, ByRef totalArea As Double, ByRef flatArea As Double, ByRef livingArea As Double, ByRef subsdArea As Double, ByRef balcArea As Double, ByRef row As Integer)  
 
  Dim obj As IPTObject  
  For Each obj In rooms  
    If obj.Type = ptObjTypeRoom Then  
      Dim room As PTRoom  
      Set room = obj  
      If (flat Is Nothing) = (room.flat Is Nothing) Then  
        ' литера  
        Cells(row, 1).Formula = room.Litera  
        ' этаж  
        If Not floor Is Nothing Then Cells(row, 2).Formula = floor.floorId Else Cells(row, 2).Formula = ""  
        ' помещение  
        If Not flat Is Nothing Then Cells(row, 3).Formula = flat.FlatId Else Cells(row, 3).Formula = ""  
        ' номер &#247;&#239;  
        Cells(row, 4).Formula = room.RoomId  
        ' назначение  
        Cells(row, 5).Formula = room.Description  
        ' формула  
        Cells(row, 6).Formula = room.area.Formula  
        ' &#239;&#235;&#238;&#249;&#224;&#228;&#252; &#247;&#239;  
        Dim roomArea As Double  
        roomArea = FormatNumber(room.area, 1)  
        'площадь с учетом неотапливаемых чп  
        Dim area As Double  
        area = FormatNumber(roomArea * room.AreaFactor, 1)  
        totalArea = totalArea + area  
        If area > 0 Then Cells(row, 7).Formula = area Else Cells(row, 7).Formula = ""  
        'общая площадь  
        If room.AreaCategory = ptAreaCategoryLiving Or room.AreaCategory = ptAreaCategorySubsidiary Then  
          area = FormatNumber(roomArea * room.AreaFactor, 1)  
          flatArea = flatArea + area  
        Else  
          area = 0#  
        End If  
        If area > 0 Then Cells(row, 8).Formula = area Else Cells(row, 8).Formula = ""  
        ' жилая  
        If room.AreaCategory = ptAreaCategoryLiving Then  
          area = roomArea  
          livingArea = livingArea + area  
        Else  
          area = 0#  
        End If  
        If area > 0 Then Cells(row, 9).Formula = area Else Cells(row, 9).Formula = ""  
        ' подсобная  
        If room.AreaCategory = ptAreaCategorySubsidiary Then  
          area = FormatNumber(roomArea * room.AreaFactor, 1)  
          subsdArea = subsdArea + area  
        Else  
          area = 0#  
        End If  
        If area > 0 Then Cells(row, 10).Formula = area Else Cells(row, 10).Formula = ""  
        ' лоджий, балконов  
        If room.AreaCategory = ptAreaCategoryCold Then  
          area = FormatNumber(room.area * room.AreaFactor, 1)  
          balcArea = balcArea + area  
        Else  
          area = 0#  
        End If  
        If area > 0 Then Cells(row, 11).Formula = area Else Cells(row, 11).Formula = ""  
        ' высота  
        Cells(row, 12).Formula = room.Height  
        Cells(row, 13).Formula = ""  
        Cells(row, 14).Formula = ""  
        row = row + 1  
      End If  
    End If  
  Next  
End Sub  
 
' возвращает этаж по номеру  
Function GetFloorById(sFloorId As String, ptApp As PTApplication) As PTFloor  
  Set GetFloorById = Nothing  
  Dim floor As PTFloor  
  For Each floor In ptApp.ObjectsByType(ptObjTypeFloor)  
    If floor.floorId = sFloorId Then  
      Set GetFloorById = floor  
      Exit For  
    End If  
  Next  
End Function  
 
' returns the plan model  
Function GetPlanModel() As PTApplication  
  Dim app  
  Set app = CreateObject("PlanCad.Application")  
  app.Visible = True  
  Set GetPlanModel = app.Documents.ActivePlanModel  
End Function

Всего записей: 182 | Зарегистр. 12-11-2005 | Отправлено: 11:08 14-11-2014
Leojse

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер, уважаемые форумчане! Буду очень признателен за любую помощь в данном вопросе. Есть две книги, с которых собираются данные в сводную книгу. Помогите, пожалуйста, поправить макрос так, чтобы при сборе данных из книги 1, данные не копировались в сводную книгу, имеющих условие в виде даты (то есть, на пример, не должен копироваться адрес Нефедова 31в - 2, и Нефедова 31в-25 в сводную, так как есть условие в виде даты). Данные с условием в виде даты из книги 2 не копируются в сводную, но не знаю, как прописать также, чтобы такие данные с условием не копировались и из первой книги.
Заранее огромнейшее спасибо за любую помощь!
http://rghost.ru/59047772

Всего записей: 107 | Зарегистр. 05-11-2009 | Отправлено: 20:27 13-11-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrewkard1980, а теперь все как всегда впорядке
 
а по поводу
Цитата:
заставить компутер делать выводы, т.е. вот он описал ,что вар 1 коррелирует с вар3, а вар 4 коррелирует с вар 5......... ,а далее вводная фраза Таким образом мы можем сделать вывод, что:  (смотрим с чем и как связана сначала первая переменная)  
чем больше у человека вар1, тем больше у него выражено вар3, а также вар 4 , а также вар 6 и меньше у него выражено вар5(зависит от знака корреляции), после как все зависимости с вар 1 прописались переходим к след. переменной и в таком же духе, чем больше у человека там вар 3, тем больше вар 4 и меньше вар 5.

Сможете помочь?
Здесь по сути идентичная первой, надо просто другие вводные слова вставлять
Таким образом мы можем сделать вывод, что
чем больше   .... тем больше,  или чем больше, тем меньше (зависит от знака)

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 13:19 11-11-2014
andrewkard1980

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fsp050

Цитата:
Это просто повторное описание

Просто у Вас зеркальная таблица, по этому возникает дубляж, пробуйте так:

Код:
 
Sub CorrDescription()
Dim sNmCl$, sNmRw$, sStr$
Dim r As Range
Dim oDict: Set oDict = CreateObject("Scripting.Dictionary"): oDict.CompareMode = vbBinaryCompare
sStr = "При проведении корреляционного анализа были полученные статистически достоверные зависимости, так, "
For Each r In Selection
    If r.Font.ColorIndex = 3 Then
    sNmCl = Cells(1, r.Column).Value
    sNmRw = Cells(r.Row, 1).Value
        If oDict.Exists(sNmCl & sNmRw) = False And oDict.Exists(sNmRw & sNmCl) = False Then
            If r.Value >= 0 Then
                sStr = sStr & sNmCl & " положительно коррелирует с " & sNmRw & " (r = " & Application.Round(r.Value, 2) & ", p<0,05), "
            Else
                sStr = sStr & sNmCl & " отрицательно коррелирует с  " & sNmRw & " (r = " & Application.Round(r.Value, 2) & ", p<0,05), "
            End If
            oDict.Item(sNmCl & sNmRw) = 1
            oDict.Item(sNmRw & sNmCl) = 1
        End If
    End If
Next
sStr = Left(sStr, Len(sStr) - 2) & "."
Cells(Cells(Rows.Count, "A").End(xlUp).Row + 2, 1) = sStr
End Sub
 

Всего записей: 209 | Зарегистр. 01-05-2010 | Отправлено: 21:46 10-11-2014
Fsp050

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andrewkard1980, здоровски)) Спасибо Вам. Работает.  А можете, пожалуйста, внести пару корректировок.  
Дело в том, что есть дублирование , например
var3 положительно коррелирует с var1 (r = 0,79, p<0,05)
и
var1 положительно коррелирует с var3 (r = 0,79, p<0,05)
и так далее. Это просто повторное описание
 
И такой вопросик. Если я правильно понял, вы  немного разбираетесь в статистике. Положительная корреляция означает что чем больше одно тем больше второе. Например чем больше коммуникабельность , тем больше дружелюбность, а отрицательная наоборот чем меньше коммуникабельность тем больше замкнутость, но это такая элементарнейшая линейная зависимость. Можно ли заставить компутер делать выводы, т.е. вот он описал ,что вар 1 коррелирует с вар3, а вар 4 коррелирует с вар 5......... ,а далее вводная фраза Таким образом мы можем сделать вывод, что:  (смотрим с чем и как связана сначала первая переменная)
чем больше у человека вар1, тем больше у него выражено вар3, а также вар 4 , а также вар 6 и меньше у него выражено вар5(зависит от знака корреляции), после как все зависимости с вар 1 прописались переходим к след. переменной и в таком же духе, чем больше у человека там вар 3, тем больше вар 4 и меньше вар 5.

Всего записей: 361 | Зарегистр. 02-04-2011 | Отправлено: 22:14 08-11-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Закладки » Excel VBA (часть 3)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru