Бухгалтерский отдел вводит поступления денег в разных валютах ($, шекели и австралийские фунты). Можно ли отсортировать столбец, содержащий смешанные валюты, по типу валюты, если символ валюты содержится в той же ячейке, что и сумма, или символ валюты должен находиться в отдельном столбце от денежной суммы?
решение1
ПРЕАМБУЛА: Сначала я не понял вашего вопроса, но потом понял, что для этого нельзя иметь дело с текстовыми значениями (символ валюты + цифры), поэтому вам нужно иметь дело с ячейками, содержащими значения, отформатированные таким образом, чтобы они отображались как денежные суммы, но на самом деле содержащие только числа (просто цифры, без символов валюты).
Ну, поскольку на данный момент Excel по-прежнему не обеспечивает сортировку на основе форматирования ячеек (кроме цветов/значков), единственное решение, которое приходит мне в голову, — это, по сути, вторая из ваших гипотез:вам необходимо поместить относительный символ валюты для каждой суммы (строки) во вторичном столбце; таким образом вы затем сможете выполнить пользовательскую многоуровневую сортировку(первый уровень по столбцу валюты и второй уровень по столбцу суммы) и рассортируйте свои данные.
Что я могу сделать сейчас, так это предложить вам способ автоматизировать процесс, чтобы он работал быстрее, и предположить, что вы не хотите вручную писать символы валют для каждой строки с суммами (а вы? ;-D).
Хорошо, если вы можете использовать для этого VBA, тогда начнем...
1) Поместите следующий код VBA в модуль:
Public Function GetCurrency(ByVal r As Range) As String
Application.Volatile
Static RegX As Object
If RegX Is Nothing Then Set RegX = CreateObject("VBScript.RegExp")
With RegX
.Global = True
.Pattern = "[0-9\-\.,\s]"
GetCurrency = .Replace(r.Text, "")
End With
End Function
2) Теперь, предположив, что значения сумм находятся в столбце «A», а символы валют должны быть в столбце «B», поместите эту формулу в первую строку столбца B (ячейка B1):
=GetCurrency(A1)
затем скопируйте эту формулу для всех необходимых последующих строк того же столбца (B).
Итак, теперь у вас есть два столбца: один с отформатированными значениями сумм (A), а другой, который вам нужен, содержит относительные символы валют (B).
ОБРАТИТЕ ВНИМАНИЕ, ЭТО БУДЕТ РАБОТАТЬ ТОЛЬКО ЕСЛИ МОИ ПРЕДПОЛОЖЕНИЯ ИЗ ПРЕАМБУЛЫ БЫЛИ ВЫПОЛНЕНЫ И, ПОЭТОМУ, У ВАС БЫЛ СТОЛБЕЦ «A», СОДЕРЖАЩИЙ ЧИСЛОВЫЕ ЗНАЧЕНИЯ, ОТФОРМАТИРОВАННЫЕ КАК ПРАВИЛЬНЫЕ ВАЛЮТЫ. В ПРОТИВНОМ СЛУЧАЕ НЕОБХОДИМОСТЬ ВРУЧНУЮ ФОРМАТИРОВАНИЯ КАЖДОЙ СТРОКИ/ЯЧЕЙКИ СТОЛБЦА «A» НА ЭТОМ МОМЕНТЕ НЕ ИМЕЕТ НИКАКОЙ РАЗНИЦЫ И НЕ ДАЕТ НИКАКИХ ПРЕИМУЩЕСТВ/ПРЕИМУЩЕСТВ ПО СРАВНЕНИЮ С НЕПОСРЕДСТВЕННЫМ НАПИСАНИЕМ СИМВОЛА ВАЛЮТЫ ВРУЧНУЮ В КАЖДОЙ СТРОКЕ/ЯЧЕЙКЕ СТОЛБЦА «B».
3) Теперь выберите два столбца и выполните многоуровневую сортировку:
Перейдите на ленту «Данные», найдите группу «Сортировка и фильтр», нажмите «Сортировка»;
Сортировать ЗНАЧЕНИЯ СТОЛБЦА B (первый уровень)
Нажмите «Добавить уровень».
Сортировать ЗНАЧЕНИЯ СТОЛБЦА A (второй уровень)
и вы сделали!
PS: Теперь, если хотите, вы можете даже безопасно скрыть столбец «B».
ССЫЛКИ: Подробнеесортировка по нескольким столбцам.
ВАЖНОЕ ЗАКЛЮЧИТЕЛЬНОЕ ПРИМЕЧАНИЕ:
вам не нужно манипулировать/изменять каким-либо образом значения в столбце сумм, символы валют ДОЛЖНЫ БЫТЬ во вторичном столбце для этого. Вы не можете просто добавить символы валют в столбец значений сумм, потому что в противном случае вы получите суммы как текстовые значения и, следовательно, не сможете отсортировать их должным образом, как числовые значения! (Подумайте, например, о том, что происходит, когда у вас есть "$80", "$30", "$500" как текстовые значения: "$500" будет отсортировано между "$80" и "$30", потому что как символы: "8" < "5" < "3"
...Надеюсь, вы поняли.)