Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как преобразовать цифровое-буквенное значение в цифру - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как преобразовать цифровое-буквенное значение в цифру (Формулы/Formulas)
Как преобразовать цифровое-буквенное значение в цифру
ada Дата: Четверг, 10.03.2016, 14:14 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день, уважаемые формучане. Прошу помощи в следующем решении: есть бланк заявки в котором работают менеджеры. Занося от клиентов заявки, менеджеры напротив каждого наименования в соседней ячейке ставят количество продукта например 1 кор или 14 (14 это килограмм), суть проблемы в том что мне не сформировать итоги по каждому наименованию по всем клиентам, потому что заносят в заявку значения то с коробками (1 кор), то просто число (т.е. в килограммах). А хотелось бы под таблицей организовать общий свод в котором по каждому наименованию суммировались итоги для понимания продан ли данный товар на сегодня. В результате приходиться в рукопашную производить итоги по каждому наименованию, при чем что групповая упаковка это 14кг, пакет 14кг, а подложка берем среднюю 8 кг для подсчета остатков не проданного товара. А еще нужно как то минусовать или плюсовать корректировку (клиент либо увеличивает объем, либо снижает, что также сказывается на итогах). Решение о том что давайте делать все в килограммах, а производство пусть определяет исходя из веса сами сколько это в коробках. Поскольку есть большая погрешность в укладке товара особенно на подложку, то такой вариант пока невозможен. Пример во вложении. Подскажите что можно сделать, сижу мозг ломаю..
К сообщению приложен файл: _-.xlsx (18.5 Kb)
 
Ответить
СообщениеДобрый день, уважаемые формучане. Прошу помощи в следующем решении: есть бланк заявки в котором работают менеджеры. Занося от клиентов заявки, менеджеры напротив каждого наименования в соседней ячейке ставят количество продукта например 1 кор или 14 (14 это килограмм), суть проблемы в том что мне не сформировать итоги по каждому наименованию по всем клиентам, потому что заносят в заявку значения то с коробками (1 кор), то просто число (т.е. в килограммах). А хотелось бы под таблицей организовать общий свод в котором по каждому наименованию суммировались итоги для понимания продан ли данный товар на сегодня. В результате приходиться в рукопашную производить итоги по каждому наименованию, при чем что групповая упаковка это 14кг, пакет 14кг, а подложка берем среднюю 8 кг для подсчета остатков не проданного товара. А еще нужно как то минусовать или плюсовать корректировку (клиент либо увеличивает объем, либо снижает, что также сказывается на итогах). Решение о том что давайте делать все в килограммах, а производство пусть определяет исходя из веса сами сколько это в коробках. Поскольку есть большая погрешность в укладке товара особенно на подложку, то такой вариант пока невозможен. Пример во вложении. Подскажите что можно сделать, сижу мозг ломаю..

Автор - ada
Дата добавления - 10.03.2016 в 14:14
китин Дата: Четверг, 10.03.2016, 14:20 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
и вам не хворать!!!!!
а если так?
Код
=--ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)

[p.s.]забыл бинарное отрицание.файл перевложил,исправил

поспешил :'(
К сообщению приложен файл: ada.xlsx (18.9 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 10.03.2016, 14:30
 
Ответить
Сообщениеи вам не хворать!!!!!
а если так?
Код
=--ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)

[p.s.]забыл бинарное отрицание.файл перевложил,исправил

поспешил :'(

Автор - китин
Дата добавления - 10.03.2016 в 14:20
Nic70y Дата: Четверг, 10.03.2016, 14:22 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8705
Репутация: 2260 ±
Замечаний: 0% ±

Excel 2010
а если так?
не прикольно :)
Код
=--ПОДСТАВИТЬ(D4;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(D4;0;);1;);2;);3;);4;);5;);6;);7;);8;);9;);)
К сообщению приложен файл: 1422005.xlsx (19.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщение
а если так?
не прикольно :)
Код
=--ПОДСТАВИТЬ(D4;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(D4;0;);1;);2;);3;);4;);5;);6;);7;);8;);9;);)

Автор - Nic70y
Дата добавления - 10.03.2016 в 14:22
w00t Дата: Четверг, 10.03.2016, 14:24 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 3 ±
Замечаний: 0% ±

Посмотрите формулу в столбце C.
Это формула массива, вводится по Ctrl+Shift+Enter. Попробуйте применить одну из.
 
Ответить
СообщениеПосмотрите формулу в столбце C.
Это формула массива, вводится по Ctrl+Shift+Enter. Попробуйте применить одну из.

Автор - w00t
Дата добавления - 10.03.2016 в 14:24
китин Дата: Четверг, 10.03.2016, 14:38 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация: 1073 ±
Замечаний: 0% ±

Excel 2007;2010;2016
исправляюсь.наверно и покороче можно, но некогда :D
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЕСЛИ(B4="подложка";ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*8;ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*14))

маленько покороче
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*ПРОСМОТР(B4;{"групповая":"пакет":"подложка"};{14:14:8}))

а можно ведь без проверки
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЛЕВБ(D4;ПОИСК(" ";D4)-1)*ПРОСМОТР(B4;{"групповая":"пакет":"подложка"};{14:14:8}))
К сообщению приложен файл: ada_2.xlsx (19.7 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852


Сообщение отредактировал китин - Четверг, 10.03.2016, 15:16
 
Ответить
Сообщениеисправляюсь.наверно и покороче можно, но некогда :D
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЕСЛИ(B4="подложка";ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*8;ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*14))

маленько покороче
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЕСЛИОШИБКА(ЛЕВБ(D4;ПОИСК(" ";D4)-1);D4)*ПРОСМОТР(B4;{"групповая":"пакет":"подложка"};{14:14:8}))

а можно ведь без проверки
Код
=ЕСЛИ(ЕЧИСЛО(D4);D4;ЛЕВБ(D4;ПОИСК(" ";D4)-1)*ПРОСМОТР(B4;{"групповая":"пакет":"подложка"};{14:14:8}))

Автор - китин
Дата добавления - 10.03.2016 в 14:38
ada Дата: Четверг, 10.03.2016, 15:21 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Ребята спасибо огромное, не ожидал за такие оперативные советы!!! Всем хорошего настроения ))
 
Ответить
СообщениеРебята спасибо огромное, не ожидал за такие оперативные советы!!! Всем хорошего настроения ))

Автор - ada
Дата добавления - 10.03.2016 в 15:21
AlexM Дата: Четверг, 10.03.2016, 15:39 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4448
Репутация: 1094 ±
Замечаний: 0% ±

Excel 2003
Маленько короче
Код
=ЛЕВБ(D4;ПОИСК("? ";D4&" "))*ВПР(ЛЕВБ(B4;2);{"гр";14:"па";14:"по";8};2)^ЕТЕКСТ(D4)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМаленько короче
Код
=ЛЕВБ(D4;ПОИСК("? ";D4&" "))*ВПР(ЛЕВБ(B4;2);{"гр";14:"па";14:"по";8};2)^ЕТЕКСТ(D4)

Автор - AlexM
Дата добавления - 10.03.2016 в 15:39
МВТ Дата: Четверг, 10.03.2016, 20:56 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Если правильно понял, что именно должно получиться. Работать должно довольно прытко
[vba]
Код
Private Function GetWeight(S) As Double
    If S Like "*кор" Then GetWeight = 14 * Val(Replace(S, ",", ".")) Else GetWeight = Val(Replace(S, ",", "."))
End Function

Sub tt()
    Dim Col As Object: Set Col = CreateObject("Scripting.Dictionary")
    Dim arr(), arr1(), Rng As Range, I As Long
    Set Rng = Range("A4:D" & Cells(Rows.Count, "H").End(xlUp).Row)
    arr = Rng.Value
    For I = 1 To UBound(arr)
        With Col
            If .exists(arr(I, 1)) Then
                .Item(arr(I, 1)) = .Item(arr(I, 1)) + GetWeight(arr(I, 4))
            Else
                .Add Key:=arr(I, 1), Item:=GetWeight(arr(I, 4))
            End If
        End With
    Next
    Set Rng = Range("A46:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    ReDim arr(1 To Rng.Rows.Count, 1 To 1)
    arr1 = Rng.Value
    For I = 1 To UBound(arr)
        arr(I, 1) = Col.Item(arr1(I, 1))
    Next
    Rng.Offset(0, 4).Value = arr
    Erase arr: Erase arr1: Col = Nothing
End Sub
[/vba]
 
Ответить
СообщениеЕсли правильно понял, что именно должно получиться. Работать должно довольно прытко
[vba]
Код
Private Function GetWeight(S) As Double
    If S Like "*кор" Then GetWeight = 14 * Val(Replace(S, ",", ".")) Else GetWeight = Val(Replace(S, ",", "."))
End Function

Sub tt()
    Dim Col As Object: Set Col = CreateObject("Scripting.Dictionary")
    Dim arr(), arr1(), Rng As Range, I As Long
    Set Rng = Range("A4:D" & Cells(Rows.Count, "H").End(xlUp).Row)
    arr = Rng.Value
    For I = 1 To UBound(arr)
        With Col
            If .exists(arr(I, 1)) Then
                .Item(arr(I, 1)) = .Item(arr(I, 1)) + GetWeight(arr(I, 4))
            Else
                .Add Key:=arr(I, 1), Item:=GetWeight(arr(I, 4))
            End If
        End With
    Next
    Set Rng = Range("A46:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    ReDim arr(1 To Rng.Rows.Count, 1 To 1)
    arr1 = Rng.Value
    For I = 1 To UBound(arr)
        arr(I, 1) = Col.Item(arr1(I, 1))
    Next
    Rng.Offset(0, 4).Value = arr
    Erase arr: Erase arr1: Col = Nothing
End Sub
[/vba]

Автор - МВТ
Дата добавления - 10.03.2016 в 20:56
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как преобразовать цифровое-буквенное значение в цифру (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!