У меня есть два листа Excel
Столбцы первого листа:
ColA ColB ColC ColD ColE (containing M rows) ~700 rows
A B C D E
AA BB CC DD EE
Колонны второго листа:
Col1 Col2 Col3 Col4 (containing N rows) ~ 100 rows
1 2 3 4
11 22 33 44
Окончательный набор результатов:
ColA ColB ColC ColD ColE Col 1 Col2 Col3 Col4
A B C D E 1 2 3 4
A B C D E 11 22 33 44
AA BB CC DD EE 1 2 3 4
AA BB CC DD EE 11 22 33 44
Я хочу получить итоговую электронную таблицу, которая будет перекрестным умножением двух вышеупомянутых листов: M X N строк и скопировать их обратно в csv / excel.
Я использую PHP для перекрестного соединения двух листов. Я конвертировал оба листа в csv, поэтому мой первый лист — csv1, а второй — csv2.
<?php
$csv1 = array_map('str_getcsv', file('Book1.csv'));
$csv2 = array_map('str_getcsv', file('Book2.csv'));
$ans = array();
foreach ($csv1 as $key1) {
foreach ($csv2 as $key2) {
$ans[] = $key1 . ' ' . $key2;
}
}
$fp = fopen('file.csv','w');
foreach($ans as $fields) {
fputcsv($fp, $fields);
}
?>
По какой-то причине это не работает. Сервер не отвечает, и файл не заполняется.
Вам придется написать некоторый код VBA. Если под «быстрее» вы имеете в виду «проще», почти без разработки, вставьте и добавьте два листа в Access в виде отдельных таблиц и создайте запрос с открытым объединением двух таблиц, выбрав все поля.
Если вы хотите сделать это исключительно в Excel, вы можете сделать это с помощью операторов INDIRECT (), ROW () и MOD (). Вы должны знать, что делать это полностью в Excel — не лучший способ вычислить около 70 000 строк данных.