Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 51
1

Сравнить 2 двумерных массива

16.11.2019, 21:37. Показов 2338. Ответов 5

Author24 — интернет-сервис помощи студентам
Здравствуйте, существует 2 двумерных массива вида:
1 100
2 200
3 300
и
1 400
5 500
3 300

Как их сравнить, чтобы в результате получился новый массив с данными

1 400
5 500
при условии, что (A(i,0) <> B(i,0) И A(i,1) <> B(i,1)) ИЛИ (A(i,0) = B(i,0) И A(i,1) <> B(i,1)).

Т.е. значения либо вообще не должны совпасть из двух колонок, либо из 1-й колонки может совпасть, а из 2-й - Нет.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2019, 21:37
Ответы с готовыми решениями:

Сравнить 2 двумерных массива
Добрый вечер. Помогите пожалуйста, как можно красиво без лишнего кода сравнить 2 стриговых...

Найти и сравнить минимальные элементы двух вещественных двумерных массивов
Найти и сравнить минимальные элементы двух вещественных двумерных массивов. Добавлено через 1...

Найти и сравнить средние значения элементов трех вещественных двумерных массивов
Найти и сравнить средние значения элементов трех вещественных двумерных массивов!помогите,тремя...

Даны четыре двумерных массива A, B, C, D, выполнить транспонирование (заменить строки на столбцы) каждого массива
2.даны четыре двумерных массива A, B, C, D, выполнить транспонирование (заменить строки на столбцы)...

5
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
16.11.2019, 21:48 2
Samyrro,
Цитата Сообщение от Samyrro Посмотреть сообщение
2 двумерных массива вида:
A(0,0)=1 ; A(0,1)=100
A(1,0)=2 A(1,1)=200
Я правильно понял?

Добавлено через 2 минуты
Samyrro,

Файл экселя с 10-15 заполненными строками...
0
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 51
16.11.2019, 21:55  [ТС] 3
Narimanych, Да, правильно.
Вложения
Тип файла: xlsx Пример.xlsx (8.3 Кб, 10 просмотров)
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
16.11.2019, 22:13 4
Samyrro,

Для вашего файла :
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub MMM()
Application.ScreenUpdating = False
LR = Cells(Rows.Count, 1).End(xlUp).Row
m = 1
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, 1).Value = Cells(i, 4).Value And Cells(i, 2).Value <> Cells(i, 5).Value _
        Or Cells(i, 1).Value <> Cells(i, 4).Value And Cells(i, 2).Value <> Cells(i, 5).Value _
        Or Cells(i, 1).Value <> Cells(i, 4).Value And Cells(i, 2).Value = Cells(i, 5).Value _
           Then
         Cells(m, 8).Value = Cells(i, 4).Value
         Cells(m, 9).Value = Cells(i, 5).Value
         m = m + 1
    End If
Next
Application.ScreenUpdating = True
MsgBox "Task Complete"
End Sub
0
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 51
16.11.2019, 22:18  [ТС] 5
Narimanych, Прикол в том, что элементы 2-го массива могут быть расположены случайным образом.
Вложения
Тип файла: xlsx Пример.xlsx (8.3 Кб, 9 просмотров)
0
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
17.11.2019, 11:38 6
Лучший ответ Сообщение было отмечено Samyrro как решение

Решение

Samyrro,
Кликните здесь для просмотра всего текста
Visual Basic
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
Sub MMM()
Application.ScreenUpdating = False
LR1 = Cells(Rows.Count, 1).End(xlUp).Row
LR2 = Cells(Rows.Count, 4).End(xlUp).Row
 
A = Range(Cells(1, 1), Cells(LR1, 2)).Value
B = Range(Cells(1, 4), Cells(LR2, 5)).Value
ReDim B1(1 To LR2, 1 To 3)
 
For i = 1 To LR1
     For j = 1 To LR2
        For x = 1 To 2
          B1(j, x) = B(j, x)
          If A(i, 1) = B(j, 1) And A(i, 2) = B(j, 2) Then B1(j, 3) = 1
        Next
    Next
Next
 
m = 1
 
For i = 1 To LR2
    If B1(i, 3) <> 1 Then
        Cells(m, 8).Value = B1(i, 1)
        Cells(m, 9).Value = B1(i, 2)
        m = m + 1
    End If
Next
 
Application.ScreenUpdating = True
End Sub
1
17.11.2019, 11:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2019, 11:38
Помогаю со студенческими работами здесь

Объединить два двумерных массива размерностью N*N в один, так, чтобы все строки первого массива стали чётными
Объединить два двумерных массива размерностью N*N в один, так, чтобы все строки первого массива...

Заполнение двумерных массивов, поиск и замена элементов в двумерных массивах
У меня проблема с 2-мя задачами поиогите пожалуйста. 1. Написать программу, которая вводит по...

сровнять 2 двумерных массива
нужно узнать находится ли в елементе по порядку mas число 46

Два двумерных массива
Доброго времени суток уважаемые мастера кода. Написал код который выдает результаты очень медленно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru