Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите (СРОЧНО НАДО) / 25 сообщений из 26, страница 1 из 2
12.06.2006, 13:02:10
    #33786022
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
У меня возникла трудность:
Как в OpenOffice Calc (или M.Excel) реализовать сопоставление строк и сталбцов,что б не надо было тратить уйму времени на выявление более приемлемого варианта?
Дано: код страны,название направления, цена и название компании.
(и такие данные по 7 компаниям, у каждой по 2000 направлений)
Наити:Как мне сделать так, чтоб коды сопоставились и в итоге по этим кодам выбиралась миннимальная цена( с указанием направления и названия компании)?
Возможно ли такое?
Заранее спасибо.
...
Рейтинг: 0 / 0
12.06.2006, 14:27:22
    #33786111
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Посмотри функции "Дмин" и "Дмакс" из категории "Работа с базой данных" Ексель.
...
Рейтинг: 0 / 0
12.06.2006, 17:58:16
    #33786337
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
беда в том, что я не пойму как мне написать верно формулу.
Придумала так:
=IF(A2:A20=E2:E20;1;"BEDA")IF(A2:A20<>E2:E20;12;"beda"), она сравнивать сравнивает, но только рядом стоящие строки. А надо, чтоб бегала по всему документу, так как коды могут не совпадать по строкам.
Да ещё надо чтоб копировала A, B, C, E,F,G строки в H,I,J.

Хотела применить функции else, or, go to, copy, но не получилось.
Хэлп сом ван :)
...
Рейтинг: 0 / 0
12.06.2006, 23:16:33
    #33786537
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Пардон. Ответил на письмо с рекомендацией использовать функции Дмак-Дмин, но не учел, что надо еще и название компании и пр. и пр. Если исключить программирование, можно делать так отсортировать список по убыванию цены, а затем фильтровать его по коду страны и направлению. Первой записью в отфильтрованном списке будет идти компания с минимальной ценой и далее в порядке возрастания.
Это для Ексель.
...
Рейтинг: 0 / 0
12.06.2006, 23:17:31
    #33786538
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Используются в данном случае встроенные средства Ексель (Автофильтр).
...
Рейтинг: 0 / 0
13.06.2006, 10:14:08
    #33786793
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
с макросом никак не получится написать?
...
Рейтинг: 0 / 0
13.06.2006, 14:05:45
    #33787571
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
| A B C D E F
---+---------------------
1 | A B C D E F
2 | 11 r 4 1 w 4
3 | 2 k 2 2 k 2
4 | 1 w 4 11 r 4
5 | 5 h 6 5 h 6


Надо что бы сравнивались 2 колонки:
А и D
В итоге, если в них одинаковое значение, содержимое(совпавших А и D )
колонок A B C D E F копировалось в I K L M N O
Если нет, то переходит на D2, D3, и так далее пока не находит такое же значение.
Если не находит вообще, то переходит с А1 на А2 и продолжает сравнивать содержимое строки A2 с содержимым строк в столбце D.
...
Рейтинг: 0 / 0
14.06.2006, 10:05:31
    #33789314
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
leprosyс макросом никак не получится написать?
В процедуре можно все... если понятна цель.
leprosyДано: код страны,название направления, цена и название компании.
Это таблица с данными. Я правильно понял?
leprosyНаити:Как мне сделать так, чтоб коды сопоставились и в итоге по этим кодам выбиралась миннимальная цена( с указанием направления и названия компании)?

Чтьо собственно надо? Вывести все страны (коды) и минимальные цены по каждому направлению?
...
Рейтинг: 0 / 0
14.06.2006, 10:41:01
    #33789414
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Хм... Немного не так.
Да, это таблица с данными.
Надо, чтоб сопоставлялись коды в 2ух таблицах и в итоге все строки с 1ой таблицы которые относятся к этому коду (код,направление,цена) и все строки со 2ой(строки относящиеся к совпавшему коду(код,направление,цена) копировались в отдельную таблицу.
...
Рейтинг: 0 / 0
14.06.2006, 12:44:31
    #33789897
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
leprosyХм... Немного не так.
Да, это таблица с данными.
Надо, чтоб сопоставлялись коды в 2ух таблицах и в итоге все строки с 1ой таблицы которые относятся к этому коду (код,направление,цена) и все строки со 2ой(строки относящиеся к совпавшему коду(код,направление,цена) копировались в отдельную таблицу.

А просто объединить обе таблицы?

Я по прежнему не понимаю цель, поэтому даю советы как ее вообразил.
...
Рейтинг: 0 / 0
14.06.2006, 16:41:17
    #33790830
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Есть А,В,С ;
Есть D, E, F

Надо:
сопоставить А1 с D(Проитись по всему D)


Если в D есть значение равное А1,
то содержание A1, B1, C1 , D#, E#, F# copy to G, H, I.
...
Рейтинг: 0 / 0
14.06.2006, 23:45:05
    #33791629
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim a As Range
Dim I, J as Long

With ThisWorkbook.Worksheets( 1 )
I =  1 
Do While .Cells(I,  1 ).Value <> ""
   If Not a is Nothing Then
      Range(.Cells(I,  1 ), .Cells(I,  3 )).Copy .Cells(.Cells( 1 , "I").Currentregion.Rows.Count+ 1 , "I")
      J  = a.Row
   Else
      J =  1  
   End
   set a = .Columns("D:D").Find(What:=.Cells(I,  1 ).Value, Parth:=xlWhol, After:=.Cells(J, "D"))
   If a is Nothing Then I = I+ 1 
Loop

В синтаксисе могут быть ошибки. Писал на в редакторе VBA, а по памяти. Идея такая. Для решения задачи используем функцию Find() для поиска соответствующего кода в другом списке. Функция возвращает объект Range - ссылку на найденную ячейку. Здесь можно добавить любые дополнительные проверки. Например.
Код: plaintext
1.
 If Not a is Nothing Then
    If .Cells(I,  2 ).Value = a.Offset( 0 ,  1 ).Value And .Cells(I,  3 ).Value = a.Offset( 0 , 2 ).Value Then 


Если значение не найдено - a is Nothing. Подробнее по функции посмотри в хелпе (мог ошибиться в именах параметров).
...
Рейтинг: 0 / 0
15.06.2006, 12:02:35
    #33792387
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Range не идет :-(
...
Рейтинг: 0 / 0
16.06.2006, 09:41:28
    #33794589
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
leprosyRange не идет :-(
Что именно "не идет" не ту область захватывает или сообщение об ощибке выпрыгивает?
...
Рейтинг: 0 / 0
16.06.2006, 10:10:01
    #33794687
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Сообщение об ошибке :-(
...
Рейтинг: 0 / 0
16.06.2006, 10:27:54
    #33794758
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
leprosyСообщение об ошибке :-(

скорей всего дело в точке
Код: plaintext
1.
.Range(
...
Рейтинг: 0 / 0
16.06.2006, 14:07:16
    #33795671
Помогите (СРОЧНО НАДО)
Попробуйте использовать функцию ВПР
...
Рейтинг: 0 / 0
16.06.2006, 20:00:51
    #33796859
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Новенькая1975Попробуйте использовать функцию ВПР
ВПР, если не ошибаюсь требует, чтоб массив был отсортирован по возрастанию и возвращает не ссылку, а значение ячейки.
...
Рейтинг: 0 / 0
19.06.2006, 08:25:46
    #33798596
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Я тоже соглашусь, что ВПР здесь не подойдет и Витал правильно пишет насчет функции.

ВПРИщет значение в первом столбце массива таблица и возвращает значение в той же строке из другого столбца массива «таблица».

Значения в первом столбце массива «таблица» должны быть отсортированы по возрастанию . В противном случае ВПР может возвратить неправильные результаты.
...
Рейтинг: 0 / 0
19.06.2006, 09:31:07
    #33798695
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
AshtonЯ тоже соглашусь, что ВПР здесь не подойдет и Витал правильно пишет насчет функции.

ВПРИщет значение в первом столбце массива таблица и возвращает значение в той же строке из другого столбца массива «таблица».

Значения в первом столбце массива «таблица» должны быть отсортированы по возрастанию . В противном случае ВПР может возвратить неправильные результаты.
Ошибаетесь вот из справки
Синтаксис

ВПР(искомое_значение;инфо_таблица;номер_столбца;интервальный_просмотр)

Искомое_значение - это значение, которое должно быть найдено в первом столбце массива. Искомое_значение может быть значением, ссылкой или текстовой строкой.

Инфо_таблица - это таблица с информацией, в которой ищутся данные. Можно использовать ссылку на интервал или имя интервала, например, БазаДанных или Список.

Если интервальный_просмотр имеет значение ИСТИНА, то значения в первом столбце аргумента инфо_таблица должны быть расположены в возрастающем порядке: ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА; в противном случае функция ВПР может выдать неправильный результат. Если интервальный_просмотр имеет значение ЛОЖЬ, то инфо_таблица не обязана быть сортированной.
просто если впр не находит значение, то возвращается н/д, и её надо обработать.
...
Рейтинг: 0 / 0
19.06.2006, 09:43:49
    #33798722
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Мда, нашев ответ, не дочитал до конца.
...
Рейтинг: 0 / 0
19.06.2006, 17:47:26
    #33800730
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
авторОшибаетесь вот из справки
Фиг с ним, с неотсортированным массивом (хотя, неправильный результат - штука неприятная), но какой прок от значения , возвращенного функцией? Что с ним делать, если надо всю найденную строку скопировать в определенное место? Как определить ее по значению?
Так что я за Find()!
...
Рейтинг: 0 / 0
20.06.2006, 11:19:03
    #33801925
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
А я читаю, и ничего не понимаю ... что мне делать?
...
Рейтинг: 0 / 0
20.06.2006, 12:47:45
    #33802271
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
leprosyЕсть А,В,С ;
Есть D, E, F

Надо:
сопоставить А1 с D(Проитись по всему D)


Если в D есть значение равное А1,
то содержание A1, B1, C1 , D#, E#, F# copy to G, H, I.
попробуй
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub f()
    Dim rng As Range
    Dim i As Long, j As Long
    
    With ActiveWorkbook.ActiveSheet
        i =  1 
        Do While .Cells(i,  1 ).Value <> ""
            Set rng = .Range("D:D").Find(What:=.Cells(i,  1 ).Value, After:=.Range("D1"), LookIn:=xlValues, LookAt:= _
                xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
            If Not (rng Is Nothing) Then
                j = rng.Row
                Do
                    .Range(.Cells(i,  1 ), .Cells(i,  3 )).Copy .Cells(.Cells(Rows.Count,  7 ).End(xlUp).Row +  1 ,  7 )
                    .Range(.Cells(rng.Row,  4 ), .Cells(rng.Row,  6 )).Copy .Cells(.Cells(Rows.Count,  10 ).End(xlUp).Row +  1 ,  10 )
                    Set rng = .Range("D:D").FindNext(rng)
                Loop While j <> rng.Row
            End If
            i = i +  1 
        Loop
    End With
End Sub
...
Рейтинг: 0 / 0
21.06.2006, 18:37:16
    #33806737
leprosy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите (СРОЧНО НАДО)
Зараза Басик, не даёт функции Ринг существовать.
Выкидывает Эррор.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите (СРОЧНО НАДО) / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]