|
|
#1 |
|
Участник
|
Сорри, что пишу оффтоп здесь, но оч. надеюсь, что коллеги не только в Навижн сильны и смогут подскать что разумное
![]() Вопрос в следующем: Дано: таблица в Excel в ней три столбца: А, В и С (будем считать их тремя множествами) В каждой ячейке - некий код (строка символов). Найти: столбец D должен содержать объединение множеств А, В и С (т.е. каждое значение из первых трех столбцов должно попасть в последний и при том только один раз) Можно ли с помощью стандартных экселевских функций/инструментов решить эту задачу или надо писать макрос? |
|
|
|
|
#2 |
|
Administrator
|
а можно в более чаловеческих примерах? с цифрами и буквами...
понял все слова, не понял про объединение множеств. позитив: функций там полно, какую-то точно найдем. |
|
|
|
|
#3 |
|
Участник
|
Считаю что проще загрузить всё в созданные таблицы нава и обработать всё скриптом. Или необходимо постоянное решение?
|
|
|
|
|
#4 |
|
Administrator
|
если понадобится что-то типа СРКВОТКЛ, то проще оставить в Excel...
|
|
|
|
|
#5 |
|
Участник
|
Можно выстроить данные в один столбец и сделать по нему сводную таблицу.
|
|
|
|
|
#6 |
|
Участник
|
Цитата:
Содержимое в ячейках колонки А: К1, К2, К3, К4, Х23456 Колонка В: М1, М2, К2, О3 Колонка С: С1, М1, К2, К4, О3, О4, М12 Как видим, некоторые эелементы встречаются не только в одной колонке (Н-р, К2, М1, К4, О3), но и в двух...а то и в трех. Колонка D должна содержать следующий набор: С1, К1, К2, К3, К4, М1, М2, М12, О3, О4, Х23456 Т.е. каждое значение из первых трех должно быть в четвертой, но только один раз! |
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#8 |
|
Участник
|
По ходу родилось такое решение :
Все колонки копируем в одну (Например в А) (допустим значения разместились в ячейках с А1 по А11) В В1 пишем формулу: =WENN(ZÄHLENWENN(A1:$A$11;A1)=1;A1;"") Копируем ее в остальные ячейки (с В2 по В11) Тогда в колонке В получим искомое. Останется лишь отсортировать, чтобы пустые значения ушли все вниз. |
|
|
|
|
#9 |
|
Участник
|
А в Навижн не проще?
j := ‘0’; …… j := INCSTR(j); TempA := XlWorkSheet.Range(‘A’+j).VALUE + ‘,X’; TempB := XlWorkSheet.Range(‘B’+j).VALUE + ‘,X’; TempC := XlWorkSheet.Range(‘C’+j).VALUE + ‘,X’; TempD := ‘,’; k := 0; tText := ‘’; WHILE tText <> ‘X’ DO BEGIN k += 1; tText := SELECTSTR(k, TempA); IF STRPOS(TempD,’,’+ tText+’,’) = 0 THEN TempD := TempD + tText+’,’; END; k := 0; tText := ‘’; WHILE tText <> ‘X’ DO BEGIN k += 1; tText := SELECTSTR(k, TempB); IF STRPOS(TempD,’,’+ tText+’,’) = 0 THEN TempD := TempD + tText+’,’; END; k := 0; tText := ‘’; WHILE tText <> ‘X’ DO BEGIN k += 1; tText := SELECTSTR(k, TempC); IF STRPOS(TempD,’,’+ tText+’,’) = 0 THEN TempD := TempD + tText+’,’; END; TempD := DELCHR(TempD,’<>’,’,’); XlWorkSheet.Range(‘D’+j).VALUE := TempD; |
|
|
|
|
#10 |
|
Administrator
|
хм... SQL (Access?) вам в руки
Select ColumnA.Code as Code union Select ColumnB.Code as Code union Select ColumnC.Code as Code Group By Code |
|
|
|
|
#11 |
|
Участник
|
А по VBA есть специалисты?
/>Дано: два столбца. Первый столбец - Код, второй столбец - Описание. Необходимо для каждой строки создать отдельный текстовый файл Код.txt, внутри которого будет значение второго столбца соответствующей строки, то есть Описание. Гугл помог макросом, который создает по такому алгоритму пустые файлы: Код: Sub Create_TXT_Files()
Dim fso As Object, avArr, li As Long
avArr = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value
With CreateObject("Scripting.FileSystemObject")
For li = 1 To UBound(avArr, 1)
If Len(avArr(li, 1)) Then Set fso = .CreateTextFile("C:\" & avArr(li, 1) & ".txt", True)
Next li
End With
End Sub |
|
|
|
|
#12 |
|
Участник
|
Цитата:
Сообщение от Kadawrik
Сорри, что пишу оффтоп здесь, но оч. надеюсь, что коллеги не только в Навижн сильны и смогут подскать что разумное
/>Вопрос в следующем: Дано: таблица в Excel в ней три столбца: А, В и С (будем считать их тремя множествами) В каждой ячейке - некий код (строка символов). Найти: столбец D должен содержать объединение множеств А, В и С (т.е. каждое значение из первых трех столбцов должно попасть в последний и при том только один раз) Можно ли с помощью стандартных экселевских функций/инструментов решить эту задачу или надо писать макрос? Или я чего не понимаю? |
|
|
|
|
#13 |
|
Участник
|
Цитата:
Сообщение от Васыо
А по VBA есть специалисты?
/>/>Дано: два столбца. Первый столбец - Код, второй столбец - Описание. Необходимо для каждой строки создать отдельный текстовый файл Код.txt, внутри которого будет значение второго столбца соответствующей строки, то есть Описание. Гугл помог макросом, который создает по такому алгоритму пустые файлы: Код: Sub Create_TXT_Files()
Dim fso As Object, avArr, li As Long
avArr = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value
With CreateObject("Scripting.FileSystemObject")
For li = 1 To UBound(avArr, 1)
If Len(avArr(li, 1)) Then Set fso = .CreateTextFile("C:\" & avArr(li, 1) & ".txt", True)
Next li
End With
End Sub |
|
|
|
|
#14 |
|
Участник
|
Constantine я уже потратил на гугл некоторое количество времени. Нет, так не подойдет. И разбираться с VBA нет ни острой необходимости, ни желания. Если можете добавить пару строк нужного кода - добавьте пожалуйста, мне не процесс ловли рыбы интересен, а сразу рыба, причем всего одна порция
|
|
|
|
|
#15 |
|
Участник
|
Цитата:
Сообщение от Васыо
Constantine я уже потратил на гугл некоторое количество времени. Нет, так не подойдет. И разбираться с VBA нет ни острой необходимости, ни желания. Если можете добавить пару строк нужного кода - добавьте пожалуйста, мне не процесс ловли рыбы интересен, а сразу рыба, причем всего одна порция
/>/>/>Код: Sub Create_TXT_Files()
Const ForReading = 1, ForWriting = 2, ForAppending = 3
Dim fso As Object, avArr, avArr2, li As Long
avArr = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value
avArr2 = Range(Cells(1, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2)).Value
With CreateObject("Scripting.FileSystemObject")
For li = 1 To UBound(avArr, 1)
If Len(avArr(li, 1)) Then
Set fso = .OpenTextFile("C:\for_exchange\" & avArr(li, 1) & ".txt", ForWriting, True)
fso.write avArr2(li, 1)
fso.Close
End If
Next li
End With
End Sub |
|
|
|
|
#16 |
|
Участник
|
Спасибо!
|
|
|
|
|
#17 |
|
Участник
|
|
|
|