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

Вход

Регистрация

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

 

= Мир MS Excel/Записи участника (krosav4ig) - Мир MS Excel

Результаты поиска
krosav4ig Дата: Среда, 17.12.2014, 19:18 | Сообщение № 1921 | Тема: Функция ПРОСМОТР - возврат значений из шапки
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Vinkelman, так нужно?
формула массива
Код
=ПРОСМОТР(1;1/МУМНОЖ(Ч(ТРАНСП($A$2:$G$6)=A9);СТРОКА($A$2:$A$6));$A$1:$G$1)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 17.12.2014, 19:19
 
Ответить
СообщениеVinkelman, так нужно?
формула массива
Код
=ПРОСМОТР(1;1/МУМНОЖ(Ч(ТРАНСП($A$2:$G$6)=A9);СТРОКА($A$2:$A$6));$A$1:$G$1)

Автор - krosav4ig
Дата добавления - 17.12.2014 в 19:18
krosav4ig Дата: Среда, 17.12.2014, 17:16 | Сообщение № 1922 | Тема: Несовпадение типов при выводе MsgBox
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а так?


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа так?

Автор - krosav4ig
Дата добавления - 17.12.2014 в 17:16
krosav4ig Дата: Среда, 17.12.2014, 16:40 | Сообщение № 1923 | Тема: Несовпадение типов при выводе MsgBox
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
vdekameron, ну дык вы бы справку хотя бы для приличия почитали тык


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 17.12.2014, 16:43
 
Ответить
Сообщениеvdekameron, ну дык вы бы справку хотя бы для приличия почитали тык

Автор - krosav4ig
Дата добавления - 17.12.2014 в 16:40
krosav4ig Дата: Среда, 17.12.2014, 15:13 | Сообщение № 1924 | Тема: Collection - получение уникальных записей.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант, на случай, если уникальных значений будет > 2^16 (ибо трансп() не понимает более 65536 строк). Нужен Net.FW

[vba]
Код
Option Explicit
Sub getunique()
      Const rr = 2 ^ 16
      On Error GoTo getunique_Error
      Dim AL:  Set AL = CreateObject("System.Collections.ArrayList")
      Dim AL1: Set AL1 = CreateObject("System.Collections.ArrayList")
      Dim cell As Range, i%, n&, m&
      With Application
          .ScreenUpdating = 0: .EnableEvents = 0
          For Each cell In [A2:A101]
              If Not AL.contains(cell.Value) Then AL.Add cell.Value
          Next
          'AL.Sort ' сортировка по возрастанию
          'AL.Sort: AL.Reverse 'сортировка по убыванию
          Do
              n = Application.Min(rr, AL.Count - i * rr)
              Set AL1 = AL.getrange(i * rr - IIf(i, 1, 0), n)
              With [C2].Offset(i*rr).Resize(n)
                  .Formula = Application.Transpose(AL1.Toarray)
                  m = m + .Count
              End With
              i = i + 1
          Loop Until m = AL.Count
          Set AL = Nothing: Set AL1 = AL
getunique_Error:
          .ScreenUpdating = 1: .EnableEvents = 1
      End With
      If Err.Number Then MsgBox "Error " & Err.Number & " (" & Err.Description & ") in Sub getunique"
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 17.12.2014, 15:16
 
Ответить
Сообщениееще вариант, на случай, если уникальных значений будет > 2^16 (ибо трансп() не понимает более 65536 строк). Нужен Net.FW

[vba]
Код
Option Explicit
Sub getunique()
      Const rr = 2 ^ 16
      On Error GoTo getunique_Error
      Dim AL:  Set AL = CreateObject("System.Collections.ArrayList")
      Dim AL1: Set AL1 = CreateObject("System.Collections.ArrayList")
      Dim cell As Range, i%, n&, m&
      With Application
          .ScreenUpdating = 0: .EnableEvents = 0
          For Each cell In [A2:A101]
              If Not AL.contains(cell.Value) Then AL.Add cell.Value
          Next
          'AL.Sort ' сортировка по возрастанию
          'AL.Sort: AL.Reverse 'сортировка по убыванию
          Do
              n = Application.Min(rr, AL.Count - i * rr)
              Set AL1 = AL.getrange(i * rr - IIf(i, 1, 0), n)
              With [C2].Offset(i*rr).Resize(n)
                  .Formula = Application.Transpose(AL1.Toarray)
                  m = m + .Count
              End With
              i = i + 1
          Loop Until m = AL.Count
          Set AL = Nothing: Set AL1 = AL
getunique_Error:
          .ScreenUpdating = 1: .EnableEvents = 1
      End With
      If Err.Number Then MsgBox "Error " & Err.Number & " (" & Err.Description & ") in Sub getunique"
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.12.2014 в 15:13
krosav4ig Дата: Среда, 17.12.2014, 15:06 | Сообщение № 1925 | Тема: Collection - получение уникальных записей.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Rioran, ну дык массив, с 0 начинается


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеRioran, ну дык массив, с 0 начинается

Автор - krosav4ig
Дата добавления - 17.12.2014 в 15:06
krosav4ig Дата: Среда, 17.12.2014, 12:39 | Сообщение № 1926 | Тема: Collection - получение уникальных записей.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а можно словарем?
[vba]
Код
Sub sdssd()
     Dim dic As Object: Set dic = CreateObject("scripting.dictionary")
     Dim cell As Range
     For Each cell In [A2:A101]
         dic(cell.Value) = dic(cell.Value) + 1
     Next
     [C2].Resize(UBound(dic.keys) + 1) = Application.Transpose(dic.keys)
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа можно словарем?
[vba]
Код
Sub sdssd()
     Dim dic As Object: Set dic = CreateObject("scripting.dictionary")
     Dim cell As Range
     For Each cell In [A2:A101]
         dic(cell.Value) = dic(cell.Value) + 1
     Next
     [C2].Resize(UBound(dic.keys) + 1) = Application.Transpose(dic.keys)
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 17.12.2014 в 12:39
krosav4ig Дата: Вторник, 16.12.2014, 17:43 | Сообщение № 1927 | Тема: Как считать проценты, если один из аргументов равен 0
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
и еще вариант, для E3 формула
Код
=ЕСЛИ(C3+D3;ЕСЛИ(C3;D3/C3;2)-1;"")


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеи еще вариант, для E3 формула
Код
=ЕСЛИ(C3+D3;ЕСЛИ(C3;D3/C3;2)-1;"")

Автор - krosav4ig
Дата добавления - 16.12.2014 в 17:43
krosav4ig Дата: Вторник, 16.12.2014, 16:55 | Сообщение № 1928 | Тема: Удаление лишних слов в строке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
scaels1, [vba]
Код
Do Until arr(i) > 3
[/vba] замените на [vba]
Код
Do Until arr(i) > 3 Or Len(str) <= lim
[/vba] и будет вам счастье


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеscaels1, [vba]
Код
Do Until arr(i) > 3
[/vba] замените на [vba]
Код
Do Until arr(i) > 3 Or Len(str) <= lim
[/vba] и будет вам счастье

Автор - krosav4ig
Дата добавления - 16.12.2014 в 16:55
krosav4ig Дата: Вторник, 16.12.2014, 14:03 | Сообщение № 1929 | Тема: Удаление лишних слов в строке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
вариант с UDF
К сообщению приложен файл: 123.xls (34.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениевариант с UDF

Автор - krosav4ig
Дата добавления - 16.12.2014 в 14:03
krosav4ig Дата: Вторник, 16.12.2014, 03:17 | Сообщение № 1930 | Тема: Удаление лишних слов в строке
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так
Код
=ЛЕВБ(A1;НАИМЕНЬШИЙ(ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))));СЧЁТ((ПОИСКПОЗ(38;ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))>ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))^0)+ЕСЛИ(ЕОШ(ПОИСК(" ";ПСТР(A1;ПОИСКПОЗ(38;ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))-3;3)));1))-1)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 16.12.2014, 03:21
 
Ответить
Сообщениекак-то так
Код
=ЛЕВБ(A1;НАИМЕНЬШИЙ(ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1))));СЧЁТ((ПОИСКПОЗ(38;ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))>ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))^0)+ЕСЛИ(ЕОШ(ПОИСК(" ";ПСТР(A1;ПОИСКПОЗ(38;ЕСЛИ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)));1)=" ";СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A1)))))-3;3)));1))-1)

Автор - krosav4ig
Дата добавления - 16.12.2014 в 03:17
krosav4ig Дата: Вторник, 16.12.2014, 02:45 | Сообщение № 1931 | Тема: Месяц из даты прописью
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
если нужно получить название месяца из числа, то можно проще
[vba]
Код
LblAODateCh1=12
Cells(2, 1) = Format(LblAODateCh1*30, "mmmm")
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеесли нужно получить название месяца из числа, то можно проще
[vba]
Код
LblAODateCh1=12
Cells(2, 1) = Format(LblAODateCh1*30, "mmmm")
[/vba]

Автор - krosav4ig
Дата добавления - 16.12.2014 в 02:45
krosav4ig Дата: Понедельник, 15.12.2014, 20:44 | Сообщение № 1932 | Тема: Сформировать список из данных по столбцам
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
и еще вариант
К сообщению приложен файл: 3536542-1.xlsb (22.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеи еще вариант

Автор - krosav4ig
Дата добавления - 15.12.2014 в 20:44
krosav4ig Дата: Понедельник, 15.12.2014, 19:53 | Сообщение № 1933 | Тема: Сформировать список из данных по столбцам
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
можно сводной

[p.s.]сделал через мастер сводных таблиц и диаграмм
К сообщению приложен файл: 3536542-1-1.xlsx (56.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Понедельник, 15.12.2014, 19:56
 
Ответить
Сообщениеможно сводной

[p.s.]сделал через мастер сводных таблиц и диаграмм

Автор - krosav4ig
Дата добавления - 15.12.2014 в 19:53
krosav4ig Дата: Суббота, 13.12.2014, 03:15 | Сообщение № 1934 | Тема: Среднее значение чисел из разных диапазонов
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
как-то так
Код
=СУММ(B9:C13;B20:D28;B15:J17;F6:L13;G19:K26;O10:T21;M26:T36;F30:K36)/СУММПРОИЗВ(СЧЁТ(B9:C13^0;B20:D28^0;B15:J17^0;F6:L13^0;G19:K26^0;O10:T21^0;M26:T36^0;F30:K36^0))


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениекак-то так
Код
=СУММ(B9:C13;B20:D28;B15:J17;F6:L13;G19:K26;O10:T21;M26:T36;F30:K36)/СУММПРОИЗВ(СЧЁТ(B9:C13^0;B20:D28^0;B15:J17^0;F6:L13^0;G19:K26^0;O10:T21^0;M26:T36^0;F30:K36^0))

Автор - krosav4ig
Дата добавления - 13.12.2014 в 03:15
krosav4ig Дата: Пятница, 12.12.2014, 18:01 | Сообщение № 1935 | Тема: выявление в таблице excel впервые появившегося значения
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
так нужно?
К сообщению приложен файл: 1263846.xlsx (21.0 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениетак нужно?

Автор - krosav4ig
Дата добавления - 12.12.2014 в 18:01
krosav4ig Дата: Среда, 10.12.2014, 21:21 | Сообщение № 1936 | Тема: Извлечение данных из таблицы
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
А у мну есть решение без vba ^_^
К сообщению приложен файл: 123.xls (49.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеА у мну есть решение без vba ^_^

Автор - krosav4ig
Дата добавления - 10.12.2014 в 21:21
krosav4ig Дата: Вторник, 09.12.2014, 14:30 | Сообщение № 1937 | Тема: Вставка в ячейку текущего времени, округленного кратно 5 мин
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
можно так [vba]
Код
ActiveCell = Int(Time()*288)/288
[/vba]

ЗЫ
Если нужно будет округлять 60, 30, 10 минут то вместо 288 нужно будет писать 12, 48, 144


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 09.12.2014, 14:45
 
Ответить
Сообщениеможно так [vba]
Код
ActiveCell = Int(Time()*288)/288
[/vba]

ЗЫ
Если нужно будет округлять 60, 30, 10 минут то вместо 288 нужно будет писать 12, 48, 144

Автор - krosav4ig
Дата добавления - 09.12.2014 в 14:30
krosav4ig Дата: Вторник, 09.12.2014, 13:40 | Сообщение № 1938 | Тема: Упрощение формулы.
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
или
Код
=СМЕЩ(C4;;D1)*6,2
К сообщению приложен файл: 5678992.xls (21.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеили
Код
=СМЕЩ(C4;;D1)*6,2

Автор - krosav4ig
Дата добавления - 09.12.2014 в 13:40
krosav4ig Дата: Вторник, 09.12.2014, 12:42 | Сообщение № 1939 | Тема: Расчет стоимости проезда с учетом скидок
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
тогда так
Код
=СУММПРОИЗВ(СМЕЩ(B8;;;МАКС(F8/10;1))*10*(F8>=10))+ОСТАТ(F8;10)*СМЕЩ(B8;МИН(F8/10;4);)

Код
=СУММПРОИЗВ(СМЕЩ(B8;;;МАКС(F8/10;1))*10*(F8>=10))+МАКС(ОСТАТ(F8;10);F8-50)*СМЕЩ(B8;МИН(F8/10;4);)

Код
=СМЕЩ(B8;МИН(F8/10;4);)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Вторник, 09.12.2014, 13:01
 
Ответить
Сообщениетогда так
Код
=СУММПРОИЗВ(СМЕЩ(B8;;;МАКС(F8/10;1))*10*(F8>=10))+ОСТАТ(F8;10)*СМЕЩ(B8;МИН(F8/10;4);)

Код
=СУММПРОИЗВ(СМЕЩ(B8;;;МАКС(F8/10;1))*10*(F8>=10))+МАКС(ОСТАТ(F8;10);F8-50)*СМЕЩ(B8;МИН(F8/10;4);)

Код
=СМЕЩ(B8;МИН(F8/10;4);)

Автор - krosav4ig
Дата добавления - 09.12.2014 в 12:42
krosav4ig Дата: Вторник, 09.12.2014, 03:41 | Сообщение № 1940 | Тема: Расчет стоимости проезда с учетом скидок
Группа: Друзья
Ранг: Старожил
Сообщений: 2348
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
а у мну как-то так получилось
сумма
Код
=СУММПРОИЗВ(СМЕЩ(B8;;;F8/10)*10)+ОСТАТ(F8;10)*СМЕЩ(B8;F8/10;)

стоимость следующей поездки
Код
=СМЕЩ(B8;F8/10;)
К сообщению приложен файл: 5449325.xlsx (9.9 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщениеа у мну как-то так получилось
сумма
Код
=СУММПРОИЗВ(СМЕЩ(B8;;;F8/10)*10)+ОСТАТ(F8;10)*СМЕЩ(B8;F8/10;)

стоимость следующей поездки
Код
=СМЕЩ(B8;F8/10;)

Автор - krosav4ig
Дата добавления - 09.12.2014 в 03:41
Поиск:

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