Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Дубляж обновляемых данных - Мир MS Excel

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_, DrMini  
Дубляж обновляемых данных
Свирид Дата: Понедельник, 02.06.2014, 12:51 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Добрый день. Желание есть, а соображалки не хватает. На листе две таблицы. Одна заполняется по принципу шахмат (g6-h6, c3-d3 и т.д.). Вторая, собственно, является вместилищем данных из первой, но с подвохом. Подвох в том, что ровно в половине случаев вторая таблица заполняется зеркальным отображением парных ячеек из первой (по принципу 6-0 0-6, 1-2 2-1), тоесть данные используются дважды. Критерий заполнения второй таблицы таков- после заполнения первого столбца заполняться должен второй (вновь поступившими данными из первой таблицы), после второго третий (аналогично) и т.д. Предположительно вторая таблица должна заполняться "=БИЗВЛЕЧ", но не могу совладать с критериями. Хотя уверенности в "=БИЗВЛЕЧ" нет никакой. Возможно ли решение вообще или же это нереально даже теоретически?
К сообщению приложен файл: 7045541.xlsx (27.4 Kb)


Сообщение отредактировал Свирид - Вторник, 03.06.2014, 10:31
 
Ответить
СообщениеДобрый день. Желание есть, а соображалки не хватает. На листе две таблицы. Одна заполняется по принципу шахмат (g6-h6, c3-d3 и т.д.). Вторая, собственно, является вместилищем данных из первой, но с подвохом. Подвох в том, что ровно в половине случаев вторая таблица заполняется зеркальным отображением парных ячеек из первой (по принципу 6-0 0-6, 1-2 2-1), тоесть данные используются дважды. Критерий заполнения второй таблицы таков- после заполнения первого столбца заполняться должен второй (вновь поступившими данными из первой таблицы), после второго третий (аналогично) и т.д. Предположительно вторая таблица должна заполняться "=БИЗВЛЕЧ", но не могу совладать с критериями. Хотя уверенности в "=БИЗВЛЕЧ" нет никакой. Возможно ли решение вообще или же это нереально даже теоретически?

Автор - Свирид
Дата добавления - 02.06.2014 в 12:51
Свирид Дата: Вторник, 03.06.2014, 09:04 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Есть мнения?
 
Ответить
СообщениеЕсть мнения?

Автор - Свирид
Дата добавления - 03.06.2014 в 09:04
Russel Дата: Вторник, 03.06.2014, 09:14 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Есть мнение, что Ничего не понятно в Вашем файле и в объяснении чего Вы хотите. Это мнение моё. Думаю, что 24 просмотра и 0 ответов говорят о том, что это мнение разделяют некоторые люди на этом форуме.


QIWI 9173973973
 
Ответить
СообщениеЕсть мнение, что Ничего не понятно в Вашем файле и в объяснении чего Вы хотите. Это мнение моё. Думаю, что 24 просмотра и 0 ответов говорят о том, что это мнение разделяют некоторые люди на этом форуме.

Автор - Russel
Дата добавления - 03.06.2014 в 09:14
Свирид Дата: Вторник, 03.06.2014, 09:32 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Нужно чтобы правая табличка заполнялась данными из левой. Каждая строка в правой таблице (там где парные столбцы "зп") заполняется последовательно (как только появляются новые данные в левой таблице). Russel, спасибо за комментарий.


Сообщение отредактировал Свирид - Вторник, 03.06.2014, 17:33
 
Ответить
СообщениеНужно чтобы правая табличка заполнялась данными из левой. Каждая строка в правой таблице (там где парные столбцы "зп") заполняется последовательно (как только появляются новые данные в левой таблице). Russel, спасибо за комментарий.

Автор - Свирид
Дата добавления - 03.06.2014 в 09:32
Свирид Дата: Вторник, 03.06.2014, 17:34 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Совсем никак? :(
 
Ответить
СообщениеСовсем никак? :(

Автор - Свирид
Дата добавления - 03.06.2014 в 17:34
Russel Дата: Вторник, 03.06.2014, 17:40 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1394
Репутация: 320 ±
Замечаний: 0% ±

Excel 2010
Каждая строка в правой таблице (там где парные столбцы "зп") заполняется последовательно (как только появляются новые данные в левой таблице)

Данные в правой таблице у вас не соответствуют данным в левой.
Мне кажется, что Левая таблица должна заполняться из некой другой таблицы "результаты игр": Дата // Хозяева // Гости // Счет // Примечание (например для отметки овертаймов)
Принцип заполнения правой таблицы я не понял, поэтому ничем не могу помочь ))


QIWI 9173973973
 
Ответить
Сообщение
Каждая строка в правой таблице (там где парные столбцы "зп") заполняется последовательно (как только появляются новые данные в левой таблице)

Данные в правой таблице у вас не соответствуют данным в левой.
Мне кажется, что Левая таблица должна заполняться из некой другой таблицы "результаты игр": Дата // Хозяева // Гости // Счет // Примечание (например для отметки овертаймов)
Принцип заполнения правой таблицы я не понял, поэтому ничем не могу помочь ))

Автор - Russel
Дата добавления - 03.06.2014 в 17:40
Свирид Дата: Вторник, 03.06.2014, 17:55 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Данные в правой таблице у вас не соответствуют данным в левой.

Может где и ошибся, не суть. Теперь соответствует всё. Принцип заполнения следующий: в матче "Бордо" - "Сент-Этьен" счёт 3:1, двигаем ползунок вправо (пока не скроется левая таблица) и фиксируем данные- Бордо 3:1, Сент-Этьен 1:3.
К сообщению приложен файл: 9554798.xlsx (35.6 Kb)
 
Ответить
Сообщение
Данные в правой таблице у вас не соответствуют данным в левой.

Может где и ошибся, не суть. Теперь соответствует всё. Принцип заполнения следующий: в матче "Бордо" - "Сент-Этьен" счёт 3:1, двигаем ползунок вправо (пока не скроется левая таблица) и фиксируем данные- Бордо 3:1, Сент-Этьен 1:3.

Автор - Свирид
Дата добавления - 03.06.2014 в 17:55
Hugo Дата: Вторник, 03.06.2014, 17:55 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Тоже не понял, как заполняется правая таблица.
Но макросом конечно можно делать - при изменении левой, это изменение записывается в правую в эту строку, в первую пустую ячейку (или в какую?)
Нужно знать весь процесс подробно - мы не знаем, Вы знаете. Вам и делать значит... :)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеТоже не понял, как заполняется правая таблица.
Но макросом конечно можно делать - при изменении левой, это изменение записывается в правую в эту строку, в первую пустую ячейку (или в какую?)
Нужно знать весь процесс подробно - мы не знаем, Вы знаете. Вам и делать значит... :)

Автор - Hugo
Дата добавления - 03.06.2014 в 17:55
Свирид Дата: Вторник, 03.06.2014, 18:00 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Hugo, не обязательно в первую. Записывается в соответствующую ей (определяется именем команды). Хозяевам при счёте 3:1 так и записываем, гостям зеркально 1:3. Первый столбец заполнили, переходим ко второму. Хозяева по горизонтали, гости по вертикали в левой таблице.


Сообщение отредактировал Свирид - Вторник, 03.06.2014, 18:02
 
Ответить
СообщениеHugo, не обязательно в первую. Записывается в соответствующую ей (определяется именем команды). Хозяевам при счёте 3:1 так и записываем, гостям зеркально 1:3. Первый столбец заполнили, переходим ко второму. Хозяева по горизонтали, гости по вертикали в левой таблице.

Автор - Свирид
Дата добавления - 03.06.2014 в 18:00
Hugo Дата: Вторник, 03.06.2014, 18:23 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Ну тогда думаю так - при изменении ячейки в левой таблице
-если не пусто
--если цвет левее совпадает с цветом изменившейся
-в этой строке в правую таблицу копируем данные (куда именно - вопрос? в первую свободную ячейку?)
--опеределяем заголовок этой пары значений, ищем его в первом столбце (хотя можно не искать, а брать номер столбца и вычислять)
---в эту строку в правую таблицу пишем обратную пару -куда именно?

Заполнять таблицу нужно слева направо (ну как обычно) - иначе этот алгоритм рухнет.
Но можно это учесть - проверять значение и цвет и вправо - но головоломно...
Реализовывать сейчас/сегодня некогда...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеНу тогда думаю так - при изменении ячейки в левой таблице
-если не пусто
--если цвет левее совпадает с цветом изменившейся
-в этой строке в правую таблицу копируем данные (куда именно - вопрос? в первую свободную ячейку?)
--опеределяем заголовок этой пары значений, ищем его в первом столбце (хотя можно не искать, а брать номер столбца и вычислять)
---в эту строку в правую таблицу пишем обратную пару -куда именно?

Заполнять таблицу нужно слева направо (ну как обычно) - иначе этот алгоритм рухнет.
Но можно это учесть - проверять значение и цвет и вправо - но головоломно...
Реализовывать сейчас/сегодня некогда...

Автор - Hugo
Дата добавления - 03.06.2014 в 18:23
Свирид Дата: Вторник, 03.06.2014, 18:42 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
--если цвет левее совпадает с цветом изменившейся

Цвета для зрительного комфорта, в них никакой задумки нет.
-в этой строке в правую таблицу копируем данные (куда именно - вопрос? в первую свободную ячейку?)

В первую свободную ячейкув строке, всё верно. Слева направо, да. :)
--опеределяем заголовок этой пары значений, ищем его в первом столбце (хотя можно не искать, а брать номер столбца и вычислять)

Проще. Если заголовок пары "Бордо" - "Сент-Этьен" (результат 3:1), то в строке для "Бордо" 3:1, а в строке для "Сент-Этьен" 1:3. В следующем туре (в следующий раз) "Ланс" - "Бордо" 1:2, вот теперь уже в строке для "Бордо" после 3:1 запишем 2:1 (строка для "Бордо" теперь будет выглядеть так 3:1 2:1), а "Лансу", соответственно, 1:2.
---в эту строку в правую таблицу пишем обратную пару -куда именно?

В строке для "Сент-Этьен", в первую свободную пару ячеек (слева направо).
Реализовывать сейчас/сегодня некогда...

Мне совесть не позволит торопить. Я уважаю ваше время и труд. Завтра? Да не вопрос. Подчёркиваю- УВАЖАЮ.


Сообщение отредактировал Свирид - Вторник, 03.06.2014, 18:44
 
Ответить
Сообщение
--если цвет левее совпадает с цветом изменившейся

Цвета для зрительного комфорта, в них никакой задумки нет.
-в этой строке в правую таблицу копируем данные (куда именно - вопрос? в первую свободную ячейку?)

В первую свободную ячейкув строке, всё верно. Слева направо, да. :)
--опеределяем заголовок этой пары значений, ищем его в первом столбце (хотя можно не искать, а брать номер столбца и вычислять)

Проще. Если заголовок пары "Бордо" - "Сент-Этьен" (результат 3:1), то в строке для "Бордо" 3:1, а в строке для "Сент-Этьен" 1:3. В следующем туре (в следующий раз) "Ланс" - "Бордо" 1:2, вот теперь уже в строке для "Бордо" после 3:1 запишем 2:1 (строка для "Бордо" теперь будет выглядеть так 3:1 2:1), а "Лансу", соответственно, 1:2.
---в эту строку в правую таблицу пишем обратную пару -куда именно?

В строке для "Сент-Этьен", в первую свободную пару ячеек (слева направо).
Реализовывать сейчас/сегодня некогда...

Мне совесть не позволит торопить. Я уважаю ваше время и труд. Завтра? Да не вопрос. Подчёркиваю- УВАЖАЮ.

Автор - Свирид
Дата добавления - 03.06.2014 в 18:42
Свирид Дата: Среда, 04.06.2014, 12:26 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Тоесть не столбцами заполняем, а построчно.
К сообщению приложен файл: 6287936.xlsx (41.3 Kb)


Сообщение отредактировал Свирид - Среда, 04.06.2014, 12:30
 
Ответить
СообщениеТоесть не столбцами заполняем, а построчно.

Автор - Свирид
Дата добавления - 04.06.2014 в 12:26
Hugo Дата: Среда, 04.06.2014, 13:07 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Заполнять всё равно как - но сперва левую ячейку, затем правую.
Удаления не обрабатываются, при исправлении - скопирует исправленное как новое!
Код в модуль листа:
[vba]
Код
Option Explicit

'http://www.excelworld.ru/forum/2-11149-1
'- при изменении "второй" ячейки в левой таблице
'-если не пусто
'--если цвет левее совпадает с цветом изменившейся
'---в этой строке в правую таблицу копируем данные в первую свободную ячейку
'-опеределяем заголовок этой пары значений, ищем его в первом столбце
'--в эту строку в правую таблицу пишем обратную пару в первую свободную ячейку
'
'Заполнять таблицу нужно слева направо (ну как обычно) - иначе результата не будет
'на удаление исходных данных не реагирует!

Private Sub Worksheet_Change(ByVal Target As Range)
     Dim lr As Range, pr As Range, r As Range, tr As Range, t As String
     If Target.Cells.Count > 1 Then Exit Sub

     Set lr = Range("B2:AO21"): Set pr = Range("AQ2:DN21")

     If Not Intersect(Target, lr) Is Nothing Then
         If Len(Target.Value) Then
             If Target.Offset(, -1).Interior.ColorIndex = Target.Interior.ColorIndex Then
                 If Len(Target.Offset(, -1).Value) Then
                     Set r = Union(Target.Offset(, -1), Target)
                     With pr
                         Application.EnableEvents = False

                         Set tr = .Cells(Target.Row - 1, .Columns.Count).End(xlToLeft).Offset(, 1)
                         If Intersect(pr, tr) Is Nothing Then Set tr = pr.Rows(Target.Row - 1).Cells(1)
                         tr(1) = r(1): tr(1, 2) = r(2)

                         t = Cells(1, r.Column)
                         Set tr = Intersect(Rows(Columns(1).Find(t, , xlValues, xlWhole).Row), pr)
                         Set tr = .Cells(tr.Row - 1, .Columns.Count).End(xlToLeft).Offset(, 1)
                         If Intersect(pr, tr) Is Nothing Then Set tr = pr.Rows(tr.Row - 1).Cells(1)
                         tr(1, 2) = r(1): tr(1) = r(2)

                         Application.EnableEvents = True
                     End With

         End If: End If: End If: End If
End Sub
[/vba]


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеЗаполнять всё равно как - но сперва левую ячейку, затем правую.
Удаления не обрабатываются, при исправлении - скопирует исправленное как новое!
Код в модуль листа:
[vba]
Код
Option Explicit

'http://www.excelworld.ru/forum/2-11149-1
'- при изменении "второй" ячейки в левой таблице
'-если не пусто
'--если цвет левее совпадает с цветом изменившейся
'---в этой строке в правую таблицу копируем данные в первую свободную ячейку
'-опеределяем заголовок этой пары значений, ищем его в первом столбце
'--в эту строку в правую таблицу пишем обратную пару в первую свободную ячейку
'
'Заполнять таблицу нужно слева направо (ну как обычно) - иначе результата не будет
'на удаление исходных данных не реагирует!

Private Sub Worksheet_Change(ByVal Target As Range)
     Dim lr As Range, pr As Range, r As Range, tr As Range, t As String
     If Target.Cells.Count > 1 Then Exit Sub

     Set lr = Range("B2:AO21"): Set pr = Range("AQ2:DN21")

     If Not Intersect(Target, lr) Is Nothing Then
         If Len(Target.Value) Then
             If Target.Offset(, -1).Interior.ColorIndex = Target.Interior.ColorIndex Then
                 If Len(Target.Offset(, -1).Value) Then
                     Set r = Union(Target.Offset(, -1), Target)
                     With pr
                         Application.EnableEvents = False

                         Set tr = .Cells(Target.Row - 1, .Columns.Count).End(xlToLeft).Offset(, 1)
                         If Intersect(pr, tr) Is Nothing Then Set tr = pr.Rows(Target.Row - 1).Cells(1)
                         tr(1) = r(1): tr(1, 2) = r(2)

                         t = Cells(1, r.Column)
                         Set tr = Intersect(Rows(Columns(1).Find(t, , xlValues, xlWhole).Row), pr)
                         Set tr = .Cells(tr.Row - 1, .Columns.Count).End(xlToLeft).Offset(, 1)
                         If Intersect(pr, tr) Is Nothing Then Set tr = pr.Rows(tr.Row - 1).Cells(1)
                         tr(1, 2) = r(1): tr(1) = r(2)

                         Application.EnableEvents = True
                     End With

         End If: End If: End If: End If
End Sub
[/vba]

Автор - Hugo
Дата добавления - 04.06.2014 в 13:07
Свирид Дата: Среда, 04.06.2014, 14:10 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Hugo, ,бился но так и не понял почему не работает. В списке макросов даже не отображается.
 
Ответить
СообщениеHugo, ,бился но так и не понял почему не работает. В списке макросов даже не отображается.

Автор - Свирид
Дата добавления - 04.06.2014 в 14:10
Hugo Дата: Среда, 04.06.2014, 14:27 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
В списке макросов и не будет - это макрос обработки события.
Вы в модуль правильного листа поместили код? И вообще в модуль ли листа? Свой файл сейчас показать не могу.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеВ списке макросов и не будет - это макрос обработки события.
Вы в модуль правильного листа поместили код? И вообще в модуль ли листа? Свой файл сейчас показать не могу.

Автор - Hugo
Дата добавления - 04.06.2014 в 14:27
Свирид Дата: Среда, 04.06.2014, 14:35 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Hugo, либо пришлите свой файл когда сможете, либо поясните как пользоваться этим монстром тогда. Мои действия: Разработчик + Visual Basic + Лист1 + Insert + module + Ctrl V + Ctrl S .
 
Ответить
СообщениеHugo, либо пришлите свой файл когда сможете, либо поясните как пользоваться этим монстром тогда. Мои действия: Разработчик + Visual Basic + Лист1 + Insert + module + Ctrl V + Ctrl S .

Автор - Свирид
Дата добавления - 04.06.2014 в 14:35
Hugo Дата: Среда, 04.06.2014, 14:37 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
"Insert + module +" лишнее. Я ведь написал - код в модуль листа!
А файл смогу показать только поздно вечером, из дома.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение"Insert + module +" лишнее. Я ведь написал - код в модуль листа!
А файл смогу показать только поздно вечером, из дома.

Автор - Hugo
Дата добавления - 04.06.2014 в 14:37
Свирид Дата: Среда, 04.06.2014, 14:39 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
А файл смогу показать только поздно вечером, из дома.

Прошу прощения за назойливость. Вечером так вечером. Я дождусь.
 
Ответить
Сообщение
А файл смогу показать только поздно вечером, из дома.

Прошу прощения за назойливость. Вечером так вечером. Я дождусь.

Автор - Свирид
Дата добавления - 04.06.2014 в 14:39
Свирид Дата: Среда, 04.06.2014, 14:44 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 47
Репутация: -13 ±
Замечаний: 0% ±

Excel 2010
Hugo, человечище! Прости дурака. Всё работает идеально. hands Ещё раз прошу прощения за назойливость, ну и за тупость. Парень, ты лучший! Я в восторге. Спасибо спасибо спасибо.
 
Ответить
СообщениеHugo, человечище! Прости дурака. Всё работает идеально. hands Ещё раз прошу прощения за назойливость, ну и за тупость. Парень, ты лучший! Я в восторге. Спасибо спасибо спасибо.

Автор - Свирид
Дата добавления - 04.06.2014 в 14:44
Hugo Дата: Среда, 04.06.2014, 14:44 | Сообщение № 20
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3854
Репутация: 814 ±
Замечаний: 0% ±

365
Быстрее сами сделаете. Если будете пытаться :)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеБыстрее сами сделаете. Если будете пытаться :)

Автор - Hugo
Дата добавления - 04.06.2014 в 14:44
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!