Формула кейс-функции в отделе продаж - PullRequest
0 голосов
/ 01 февраля 2020

Я использовал инструкцию case, чтобы создать символьное поле с правильным разделителем нумерации из поля чисел c на основе символа валюты. Думаю, мне нужно оценить только два случая, если это "€", используя пробел как разделитель и все остальное, просто используйте запятую ","

У меня возникла проблема, чтобы упростить формулу падежной функции ниже, сейчас я оцениваю "€", "$" и "£" и думаю, это ненужно.

Заранее спасибо!

CASE(Currency_Symbol__c, "€", IF(
Room_Size__c >= 1000000,
TEXT(FLOOR(Room_Size__c / 1000000)) & " ",
"") &
IF(
Room_Size__c >= 1000,
RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & " ",
"") &
RIGHT(TEXT(FLOOR(Room_Size__c)), 3), "$", 
IF(
Room_Size__c >= 1000000,
TEXT(FLOOR(Room_Size__c / 1000000)) & ",",
"") &
IF(
Room_Size__c >= 1000,
RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & ",",
"") &
RIGHT(TEXT(FLOOR(Room_Size__c)), 3), "£", 
IF(
Room_Size__c >= 1000000,
TEXT(FLOOR(Room_Size__c / 1000000)) & ",",
"") &
IF(
Room_Size__c >= 1000,
RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & ",",
"") &
RIGHT(TEXT(FLOOR(Room_Size__c)), 3),"0")

1 Ответ

0 голосов
/ 02 февраля 2020

Вы заблудились из-за слишком большого количества ()?

Я бы начал с того, что форматировал бы его немного лучше:

CASE(Currency_Symbol__c,
    "€",    IF(Room_Size__c >= 1000000, TEXT(FLOOR(Room_Size__c / 1000000)) & " ", "")
            & IF(Room_Size__c >= 1000, RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & " ","") 
            & RIGHT(TEXT(FLOOR(Room_Size__c)), 3),
    ...
)

Таким образом, чтобы иметь только € и значение по умолчанию:

CASE(Currency_Symbol__c,
    "€",    IF(Room_Size__c >= 1000000, TEXT(FLOOR(Room_Size__c / 1000000)) & " ", "")
            & IF(Room_Size__c >= 1000, RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & " ","") 
            & RIGHT(TEXT(FLOOR(Room_Size__c)), 3),
    IF(Room_Size__c >= 1000000, TEXT(FLOOR(Room_Size__c / 1000000)) & ",", "")
        & IF(Room_Size__c >= 1000, RIGHT(TEXT(FLOOR(Room_Size__c / 1000)), 3) & ",","") 
        & RIGHT(TEXT(FLOOR(Room_Size__c)), 3),
)

Или ... теперь у вас есть CASE с двумя ветвями - может быть, это будет выглядеть чище?

IF(Room_Size__c >= 1000000,
    TEXT(FLOOR(Room_Size__c / 1000000)) + IF(Currency_Symbol__c = '€', ' ', ','),
    ''
) +
IF(Room_Size__c >= 1000,
    TEXT(FLOOR(Room_Size__c / 1000)) + IF(Currency_Symbol__c = '€', ' ', ','),
    ''
) +
RIGHT(TEXT(FLOOR(Room_Size__c)), 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...