Sub test3()
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To LastRow
If Cells(i, 6).Value = 2 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 5
If Cells(i, 6).Value = 5 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 10
' If IsError(Cells(i, 6).Value) Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = CVErr(xlErrNA) And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = CVErr(xlErrValue) And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = CVErr(xlErrValue) Then Cells(i, 7).Value = 15
' If IsError(ActiveCell.Value) Then Cells(i, 7).Value = 15
' If Cells(i, 5).Value <> "" Then
' If Cells(i, 6).Value = CVErr(xlErrNA) Then
' Cells(i, 7).Value = 15
' End If
' End If
Next i
End Sub
Пробую разные варианты - выдает одну и туже ошибку "13" - может я синтаксис неверно пишу? Не может быть, чтобы все предложенные варианты приводили к одной ошибке. Что я не правильно делаю? Не читаете правила форума. Рисунки удалены: превышение допустимого размера вложения Кнопка для оформления кода в сообщении - <...>[МОДЕРАТОР]
Sub test3()
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To lastRow
If Cells(i, 6).Value = 2 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 5
If Cells(i, 6).Value = 5 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 10
If Cells(i, 6).Value = CVErr(xlErrNA) And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
Next i
End Sub
Подскажите, пожалуйста, как правильно задается условие "если ошибка" Мне необходимо указать ошибку: #ЗНАЧ!
Код
Sub test3()
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 4 To lastRow
If Cells(i, 6).Value = 2 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 5
If Cells(i, 6).Value = 5 And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 10
' If Cells(i, 6).Value = "#ЗНАЧ!" And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = Error And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = "#Error" And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
' If Cells(i, 6).Value = "#N/A" And Cells(i, 5).Value <> "" Then Cells(i, 7).Value = 15
Next i
End Sub
Добрый день. Подскажите, как можно при помощи макроса вставить строку со значениями (исходными данными).
Вариант1: На листе "1" строки 16 и 17 - встречается первый пропуск последовательных чисел (столбец С) - пропущено значение 14. Мне необходимо вставить строку между 16 и 17 строчками. И вычислить число, которое пропущено по колонке С. Здесь число 14. На листе "2" - как должно выглядеть после работы макроса (строка 17). Здесь я сделал вручную. Как сделать при помощи автомата: на строку с красным установить курсор, нажать кнопку с макросом - вставляется строка (в данном случае строка 17 лист "2"). № х вычисляем как: в столбце С переходим на 1 строку выше от вставленной строки и берем значение столбца С(х)+1. В данном случае: строка 13, значение в столбце С =13 +1 =14. вставляем строку
отсутствующие номера найти как: от вставленной строки подняться на 1 строку выше и в столбце С взять значение +1 (здесь строка 25, значение 22+1) и опуститься на 1 строку ниже вставленной строки в столбце С взять значение -1 (здесь: строка 27, значение 28-1), чтобы получить №№ 23-27 - отсутствуют. Здесь С25+1 и С27-1 (я указал конкретные ячейки), а мне нужно, чтобы в формуле было С(х)+1 и С(х)-1, т.е. указывались значения на строку выше и ниже от вставленной строки, где х - случайная строка.
В этих двух примерах я взял конкретные значения, а мне нужно, чтобы считалось автоматом для любой строки.
Возможно есть намного проще вариант решения моей проблемы? буду рад любому решению. Заранее всем спасибо.
добрый день, Z Возможно есть вариант, при котором не нужно будет использовать дополнительную ячейку и делать двумя формулами, а сделать все в одну формулу. Это не обязательно (на данный момент длинный способ работает), но было бы интересно узнать и такой метод.
Добрый день. _Igor_61 спасибо за пояснения. Решил вопрос так: нахожу нужную строку "700" или "222" или др. Помещаю ее в др ячейку, а уже зная конкретное размещение - в формуле напрямую задаю данную ячейку и вычисляю правильную длину символов. Если кто-то знает более простое решение - буду рад узнать более быстрое и более правильное решение моей проблемы.
Мне необходимо находить последовательность символов в строке (начало, центр строки или окончание), (пример: все, что входит в $b, $g или др ). Длина строки бывает доходит до 400-600 символов.
Ячейки С15,С16 - если указывать ячейку на прямую (ячейка А6) - длина вычисляется правильно, если использовать поиск строки из массива строк (ищу строку, которая начинается на "700"), то длина строки не вычисляется, выдает ошибку.
Ячейки С23,С24,C25 и С26,C27 и С28,С29 - не могу понять, почему не вычисляется полная длина. Если количество символов не большое, то вычисляется правильно (С23,С24,C25,C28), если длину строки увеличить - выдает ошибки (С26,C27,C29). Вычисление идет в строках, начинающихся на 200 и 222. В 222 текст полный (я ничего не удалял) - здесь выдает ошибки, а в 220 удалил часть текста - в этом случае формулы начали работать.
Подскажите, как вычислить полную длину строки в заданных пределах? Строки, начало на "700" и "222".
Добрый день. Появились вопросы с которыми сам не могу справиться.
Вопрос 1: есть поле "200". Пример: 2001#$aМеханизмы влияния некоторых полисахаридных препаратов на скорость заживления ран в эксперименте $eавтореферат диссертации на соискание ученой степени кандидата медицинских наук $e14.00.16 $fШнейдер Александр Болеславович $gМинистерство высшего и среднего специального образования СССР, Университет дружбы народов им. П. Лумумбы
Необходимо извлечь название "$a", в данном случае: Механизмы влияния некоторых полисахаридных препаратов на скорость заживления ран в эксперименте. Учебное заведение "$g", в данном случае:Министерство высшего и среднего специального образования СССР, Университет дружбы народов им. П. Лумумбы
В обоих случаях искомое значение слишком длинное, если укоротить, то ответ находится правильно (укороченный вариант). При поиске названия необходимо уменьшить длину строки и "$a" и "$e", тогда работает. Подскажите, что можно сделать, чтобы он считал всю длину строки (символов 300) ?
Вопрос 2: есть поле 899 и его разновидности (те, которые смог найти, но не уверен, что нашел все), подполе "$b"=039,043,063,055. Подполе "$j"=11,15. Пример: 899##$aBY-HM0000 $b039 $j11:4:2:67 $p21778/86 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБА199008 899##$aBY-HM0000 $b043 $j11:4:2:66 $pАЯ510369 899##$aBY-HM0000 $b043 $j15:4:4:22 $pБа204698 899##$aBY-HM0000 $b063 $j11:4:2:66 $pАЯ510331 899##$aBY-HM0000 $b063 $j15:4:2:66 $pАЯ510331 899##$aBY-HM0000 $b055 $p##2Н//317030(055)
Часть данных из существующей записи: есть короткое и длинное поле. 899##$aBY-HM0000 $pБа199007 899##$aBY-HM0000 $pБа199008 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБа199007 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБА199008 899##$aBY-HM0000 $b043 $j11:4:2:66 $pАЯ510369 899##$aBY-HM0000 $b055 $p##2Н//317030(055) Мне необходимо найти все значения "$p" в длинных строках. Длинную строку можно определять как "899*$j*", т.е. добавляю подполе "$j". В данной случае сразу отсекаются короткие записи (с них нет подполя "$j") и отсекается строка вида: 899##$aBY-HM0000 $b055 $p##2Н//317030(055). Здесь в поле "$p" стоят символы "##". Такое поле "899" где есть ($b055 $p##) также, как и короткое поле не должны учавствовать в выборке. Т.е. остаются поля "899": 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБа199007 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБА199008 899##$aBY-HM0000 $b043 $j11:4:2:66 $pАЯ510369
Мне необходимо, чтобы выводился ответ: Ба199007, БА199008, АЯ510369. Формула для подсчета 2-х значений:
По данной формуле ответ получается Ба199007, Ба199007. Т.е. он все время находит первую строку. Как сделать, чтобы он просматривал все строки с полями "899*$j*" ?
вот еще пример из исходников 899##$aBY-HM0000 $pБа199492 899##$aBY-HM0000 $pБА199493 899##$aBY-HM0000 $b039 $j11:4:2:66 $pАЯ514349 899##$aBY-HM0000 $b039 $j11:4:2:66 $pАЯ516431 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБа199492 899##$aBY-HM0000 $b039 $j15:4:4:21 $pБА199493 899##$aBY-HM0000 $b055 $p##2Н//238201(055) Здесь ответ: АЯ514349, АЯ516431, Ба199492, БА199493.
Добрый день. Мне необходимо заменить "/" на "_" или "//" на "_" С одной заменой: =ПОДСТАВИТЬ(A1;"/";"_") или =ПОДСТАВИТЬ(A1;"//";"_") . Подскажите, как правильно написать формулу, чтобы она учитывала 2 варианта замены? т.е. определяла "/" или "//" и выводила "_". И чтобы при "//" не получалось "__".
Можно формулой, можно макросом. Заранее всем спасибо.
700#1$3BY-SEK-414771 $aКніга $bУ. Д. $gУладзімір Дзмітрыевіч $cкандыдат філалагічных навук
801#0$aBY $bBY-HM0000 $c19971031 $gpsbo
899##$aBY-HM0000 $p26Ад698
Столкнулся с проблемой. после значения "700" располагаются знаки и символы, а $a $b $c идут не по порядку. Мне необходимо получить только ФИО ($a и $g), остальное не включать в выборку.
gling,формулу дает нормально вставить, но вместо результата показывает #ЗНАЧ! vikttur, формула работает, все корректно отображает если отчество добавить
формула выдает ошибку - несоответствие скобок, если подставить скобку в самом конце, пишет - слишком мало аргументов. Что означает зеленый квадрат с вопросом? Что-то не корректно отобразилось?
Все данные перечисляются через $a $b $c $d и т.д. переменных может быть от 1 до 8, т.е ФИО (1,2,3), 4-писатель, 5-годы жизни, 6-титулы, звания, награды, ученые степени или др. Подскажите для начинающего в экселе: что означает -- перед ЛЕВСИМВ или где можно прочитать?
Задача: в первом столбце есть набор строк. Количество строк случайное (может быть 12, может быть 40). Каждая строка начинается с определенного кода (3 цифры). Нужно найти строку, которая начинается на "500" и взять из нее текст Пушкин Александр (вставить во второй столбец).
Есть запись, которая содержит название населенных пунктов и цифры. Необходимо разделить на 2 столбца. В первый - название. Во второй - цифры.
впау Вуц, ыва 3910, 516028 819 374
впау Вуц, ыва
3910, 516028 819 374
В прикрепленном файле есть образцы - что нужно получить в конечном итоге. Также есть попытка решения данного задания. Я научился разделять по конкретно заданной цифре (к примеру цифра 3 или 4 или 9). Мне необходимо, чтобы функция поиск находила первыю встречающуюся цифру (0-9), брала остальной массив цифр и переносила в столбец. Возможно, я совсем не правильно решаю. Подскажите, пожалуйста, как правильно выполнить такое задание. Спасибо.