Сортировка по разным символам валют в Excel 2010

Сортировка по разным символам валют в Excel 2010

Бухгалтерский отдел вводит поступления денег в разных валютах ($, шекели и австралийские фунты). Можно ли отсортировать столбец, содержащий смешанные валюты, по типу валюты, если символ валюты содержится в той же ячейке, что и сумма, или символ валюты должен находиться в отдельном столбце от денежной суммы?

решение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"...Надеюсь, вы поняли.)

Связанный контент