2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Объединение столбцов в excel
Сообщение01.04.2024, 07:50 


27/02/09
2835
Здравствуйте!

Даны два столбца с целыми числами длиной в 10 000 ячеек. Для определенности: первый столбец последовательность целых чисел в разложении которых на простые множители не больше 3-x простых чисел( с учетом их кратности). Второй столбец: 23-гладкие (-smooth) числа, то есть числа, имеющие в разложении на простые множители максимальный простой множитель 23. Последовательности взяты с известного сайта( A037144 и A080683)

Надо получить столбец, содержащий только числа, входящие в оба столбца, то-есть, целые числа в разложении которых на простые множители не больше трех и максимальный множитель - 23.

Я так понимаю, надо в ячейки записать соответствующие логические выражения, а затем убрать лишние со сдвигом вверх. Помогите пожалуйста написать логическое выражение. Заранее благодарен

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 08:38 
Аватара пользователя


22/07/11
850
druggist, Осваивайте Basic, встроенный в Excel.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 08:49 
Заслуженный участник
Аватара пользователя


03/06/08
2323
МО
Как-то так, наверное
Код:
Sub foo()
    Dim N
    Dim NN()
    N = 0
    For Each cell1 In Worksheets("Лист1").Range("A1:A8")
        For Each cell2 In Worksheets("Лист1").Range("B1:B8")
            If cell1 = cell2 Then
                N = N + 1
                ReDim Preserve NN(N)
                NN(N) = cell1
            End If
        Next
    Next
    For I = 1 To N
        Worksheets("Лист1").Cells(I, 3) = NN(I)
    Next
End Sub

Можно с ВПР попробовать еще, если не лезть в VBA.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 09:52 
Заслуженный участник


23/05/19
1163
druggist
Попробуйте так

=FILTER(B1:B10000; COUNTIF(A1:A10000;B1:B10000))

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 11:17 
Заслуженный участник


18/09/21
1756
druggist
А ещё проще перекинуть эти данные в Matlab/GNU Octave и там легко проделать операцию.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 11:42 


05/09/16
12076
druggist
А сколько вам их надо? В смысле, это именно упражнение с экселем на таком примере и столбцы могут быть и другие, или интересует кокретно пересечение этих двух множеств?

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 12:51 
Аватара пользователя


11/12/16
13881
уездный город Н
druggist
В третьем столбце функция СЧЕТЕСЛИ (посмотрите доку на неё), и фильтр по третьему столбцу "не равно нулю".
Еще удобно в некоторых случаях пользоваться функцией ВПР, и фильтр "все, кроме #НД".

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 17:27 


27/02/09
2835
Спасибо за ответы, забыл сказать, что у меня excel 2010, не уверен, есть ли такие функции как FILTER или ФИЛЬТР.

wrest в сообщении #1634996 писал(а):
или интересует кокретно пересечение этих двух множеств?

Да, именно этих двух множеств(3 и 23 взяты для определенности)

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 17:50 
Аватара пользователя


11/12/16
13881
уездный город Н
druggist в сообщении #1635033 писал(а):
забыл сказать, что у меня excel 2010, не уверен, есть ли такие функции как FILTER или ФИЛЬТР.


Если честно, не знаю, как навесить фильтр через функции.
Но фильтрация по столбцам - это стандартный древний функционал. Её просто нужно включить, и на заголовках столбцов появится кнопочка, через которую можно установить фильтр.

Кстати, Вы знаете, как проставить (скопировать) функцию во всему столбцу любой длины в два клика мышки?
А также, знаете ли, что означает символ "$" в аргументах функций?
Это очень удобные полезные фичи.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение01.04.2024, 19:32 


05/09/16
12076
druggist в сообщении #1635033 писал(а):
Да, именно этих двух множеств(3 и 23 взяты для определенности)

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

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение02.04.2024, 07:54 


27/02/09
2835
wrest в сообщении #1635041 писал(а):
Если задача повторяющаяся, готовы ли вы рассмотреть что-то кроме экселя?

Задача, которая мне интересна, это найти эту последовательность как функцию - $a(n, k, P) $ - возрастающую последовательность целых чисел, в разложении которых на простые множители, их не больше $k$(с учетом их кратности) и максимальный простой множитель не превосходит $P$. В данном случае к=3, Р=23. Думаю, что как-нибудь с ней справлюсь. И, конечно, не обязательно с помощью экселя. Но в данный момент у меня конкретный вопрос: функция, которую надо записать в ячейку. Убрать пустые места, отсортировав по убыванию(или возрастанию) даже с моими убогими навыками это не проблема)

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение02.04.2024, 08:06 
Заслуженный участник
Аватара пользователя


03/06/08
2323
МО
Для такой задачи Excel определенно не лучший выбор.
Если есть возможность, возьмите что-то более подходящее.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение02.04.2024, 08:12 
Аватара пользователя


11/12/16
13881
уездный город Н
druggist в сообщении #1635081 писал(а):
Но в данный момент у меня конкретный вопрос: функция, которую надо записать в ячейку.


Пусть у Вас в первой строке названия столбцов, а данные начинаются со второй строки, и занимают два столбца (A и B)
Тогда в ячейке С2 пишите
Код:
=СЧЁТЕСЛИ(A$2:A$10001;B2)

Эта функция посчитает, сколько раз значение из ячейки B2 встречается в диапазоне A2:A10001.
Далее копируете эту функцию на весь столбец С (это можно сделать мышкой, либо "растягивая" вниз эту ячейку за маленький квадратик в углу ячейки, либо двойным кликом левой кнопкой по этому маленькому квадратику в углу ячейки).

При копировании:
а) диапазон сдвигаться не будет, это запрещают символы "$".
б) а вот номер ячейки во втором операнде - будет.
В результате, например в ячейке C10, будет такая функция:
Код:
=СЧЁТЕСЛИ(A$2:A$10001;B10)


Фильтруете по столбцу C по условию "больше нуля" и наслаждаетесь результатом.

-- 02.04.2024, 08:13 --

пианист в сообщении #1635082 писал(а):
Для такой задачи Excel определенно не лучший выбор.


В Excel это делается 5-10 кликами мышки, и несколькими нажатиями на клавиатуре.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение02.04.2024, 08:27 
Заслуженный участник
Аватара пользователя


03/06/08
2323
МО
EUgeneUS в сообщении #1635083 писал(а):
В Excel это делается 5-10 кликами мышки

Я не знаю, в каком диапазоне лежат числа, интересующие автора темы, но предполагаю, что они слишком велики для Excel'а.
Да и просто не понимаю, для чего Excel выбран. В том же python'е и кликать ничего не надо, даже доп. библиотеки не нужны, у всякого множества есть метод intersection(). Например.

 Профиль  
                  
 
 Re: Объединение столбцов в excel
Сообщение02.04.2024, 09:08 
Заслуженный участник


18/09/21
1756
GNU Octave (это бесплатный аналог Matlab) легко скачать и установить.
Там легко импоритровать массивы из текстового файла и легко одной командой найти пересечение:
Используется синтаксис Matlab M
intersect(x,y)

Вообще, инструмент очень полезный, много чего позволяет сделать (гораздо больше чем Excel).
Есть смысл освоить.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group