lwarren1968
Registered User.
- Local time
- Today, 14:44
- Joined
- Jan 18, 2013
- Messages
- 78
Can someone review the CheckDigit Calculation portion below? Something is off. Example 02636267000 returned check digit of 6 however it is actually 2
let
Source = Excel.Workbook(File.Contents("J:\PRICE\QUERIES\144F\144F.xlsx"), null, true),
Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
#"Replaced Value" = Table.ReplaceValue(#"Promoted Headers", null, 0, Replacer.ReplaceValue, {"DEALER UNCOATED"}),
#"Changed Type5" = Table.TransformColumnTypes(#"Replaced Value", {{"Column9", type text}, {"DEALER UNCOATED", type text}}),
#"Replaced Value1" = Table.ReplaceValue(#"Changed Type5", null, 0, Replacer.ReplaceValue, {"MSRP PRICE UNCOATED"}),
#"Split Column by Delimiter" = Table.SplitColumn(Table.TransformColumnTypes(#"Replaced Value1", {{"DEALER UNCOATED", type text}}, "en-US"), "DEALER UNCOATED", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), {"DEALER UNCOATED.1", "DEALER UNCOATED.2", "DEALER UNCOATED.3"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter", {{"DEALER UNCOATED.1", type text}, {"DEALER UNCOATED.2", type number}, {"DEALER UNCOATED.3", type text}}),
#"Replaced Value2" = Table.ReplaceValue(#"Changed Type", "$", "", Replacer.ReplaceText, {"DEALER UNCOATED.1"}),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Replaced Value2", {{"DEALER UNCOATED.2", type text}}, "en-US"), {"DEALER UNCOATED.1", "DEALER UNCOATED.2"}, Combiner.CombineTextByDelimiter("", QuoteStyle.None), "Merged"),
#"Changed Type1" = Table.TransformColumnTypes(#"Merged Columns", {{"Merged", type number}, {"DEALER UNCOATED.3", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type1", {"DEALER UNCOATED.3"}),
#"Split Column by Delimiter1" = Table.SplitColumn(Table.TransformColumnTypes(#"Removed Columns", {{"MSRP PRICE UNCOATED", type text}}, "en-US"), "MSRP PRICE UNCOATED", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), {"MSRP PRICE UNCOATED.1", "MSRP PRICE UNCOATED.2", "MSRP PRICE UNCOATED.3"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1", {{"MSRP PRICE UNCOATED.1", type text}, {"MSRP PRICE UNCOATED.2", type number}, {"MSRP PRICE UNCOATED.3", type text}}),
#"Replaced Value3" = Table.ReplaceValue(#"Changed Type2", "$", "", Replacer.ReplaceText, {"MSRP PRICE UNCOATED.1"}),
#"Merged Columns1" = Table.CombineColumns(Table.TransformColumnTypes(#"Replaced Value3", {{"MSRP PRICE UNCOATED.2", type text}}, "en-US"), {"MSRP PRICE UNCOATED.1", "MSRP PRICE UNCOATED.2"}, Combiner.CombineTextByDelimiter("", QuoteStyle.None), "Merged.1"),
#"Changed Type3" = Table.TransformColumnTypes(#"Merged Columns1", {{"Merged.1", type number}, {"MSRP PRICE UNCOATED.3", type text}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type3", {"MSRP PRICE UNCOATED.3"}),
#"Changed Type4" = Table.TransformColumnTypes(#"Removed Columns1", {{"Merged", Currency.Type}, {"Merged.1", Currency.Type}}),
#"Replaced Value4" = Table.ReplaceValue(#"Changed Type4", "-", "", Replacer.ReplaceText, {"UPC"}),
#"Changed Type6" = Table.TransformColumnTypes(#"Replaced Value4", {{"UPC", type text}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type6", {{"UPC", "UPC11"}}),
// CheckDigit Calculation
AddCheckDigit = Table.AddColumn(#"Renamed Columns", "CheckDigit", each
let
UPC11Text = Text.From([UPC11]),
DigitsList = Text.ToList(UPC11Text),
OddSum = List.Sum(List.Transform(List.Alternate(DigitsList, 1, 1), each Number.FromText(_))),
EvenSum = List.Sum(List.Transform(List.Alternate(DigitsList, 0, 1), each Number.FromText(_))),
TotalSum = OddSum * 3 + EvenSum,
Mod10 = Number.Mod(TotalSum, 10),
CheckDigit = if Mod10 = 0 then 0 else 10 - Mod10
in
CheckDigit
)
in
AddCheckDigit
let
Source = Excel.Workbook(File.Contents("J:\PRICE\QUERIES\144F\144F.xlsx"), null, true),
Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars=true]),
#"Replaced Value" = Table.ReplaceValue(#"Promoted Headers", null, 0, Replacer.ReplaceValue, {"DEALER UNCOATED"}),
#"Changed Type5" = Table.TransformColumnTypes(#"Replaced Value", {{"Column9", type text}, {"DEALER UNCOATED", type text}}),
#"Replaced Value1" = Table.ReplaceValue(#"Changed Type5", null, 0, Replacer.ReplaceValue, {"MSRP PRICE UNCOATED"}),
#"Split Column by Delimiter" = Table.SplitColumn(Table.TransformColumnTypes(#"Replaced Value1", {{"DEALER UNCOATED", type text}}, "en-US"), "DEALER UNCOATED", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), {"DEALER UNCOATED.1", "DEALER UNCOATED.2", "DEALER UNCOATED.3"}),
#"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter", {{"DEALER UNCOATED.1", type text}, {"DEALER UNCOATED.2", type number}, {"DEALER UNCOATED.3", type text}}),
#"Replaced Value2" = Table.ReplaceValue(#"Changed Type", "$", "", Replacer.ReplaceText, {"DEALER UNCOATED.1"}),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Replaced Value2", {{"DEALER UNCOATED.2", type text}}, "en-US"), {"DEALER UNCOATED.1", "DEALER UNCOATED.2"}, Combiner.CombineTextByDelimiter("", QuoteStyle.None), "Merged"),
#"Changed Type1" = Table.TransformColumnTypes(#"Merged Columns", {{"Merged", type number}, {"DEALER UNCOATED.3", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type1", {"DEALER UNCOATED.3"}),
#"Split Column by Delimiter1" = Table.SplitColumn(Table.TransformColumnTypes(#"Removed Columns", {{"MSRP PRICE UNCOATED", type text}}, "en-US"), "MSRP PRICE UNCOATED", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), {"MSRP PRICE UNCOATED.1", "MSRP PRICE UNCOATED.2", "MSRP PRICE UNCOATED.3"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter1", {{"MSRP PRICE UNCOATED.1", type text}, {"MSRP PRICE UNCOATED.2", type number}, {"MSRP PRICE UNCOATED.3", type text}}),
#"Replaced Value3" = Table.ReplaceValue(#"Changed Type2", "$", "", Replacer.ReplaceText, {"MSRP PRICE UNCOATED.1"}),
#"Merged Columns1" = Table.CombineColumns(Table.TransformColumnTypes(#"Replaced Value3", {{"MSRP PRICE UNCOATED.2", type text}}, "en-US"), {"MSRP PRICE UNCOATED.1", "MSRP PRICE UNCOATED.2"}, Combiner.CombineTextByDelimiter("", QuoteStyle.None), "Merged.1"),
#"Changed Type3" = Table.TransformColumnTypes(#"Merged Columns1", {{"Merged.1", type number}, {"MSRP PRICE UNCOATED.3", type text}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type3", {"MSRP PRICE UNCOATED.3"}),
#"Changed Type4" = Table.TransformColumnTypes(#"Removed Columns1", {{"Merged", Currency.Type}, {"Merged.1", Currency.Type}}),
#"Replaced Value4" = Table.ReplaceValue(#"Changed Type4", "-", "", Replacer.ReplaceText, {"UPC"}),
#"Changed Type6" = Table.TransformColumnTypes(#"Replaced Value4", {{"UPC", type text}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type6", {{"UPC", "UPC11"}}),
// CheckDigit Calculation
AddCheckDigit = Table.AddColumn(#"Renamed Columns", "CheckDigit", each
let
UPC11Text = Text.From([UPC11]),
DigitsList = Text.ToList(UPC11Text),
OddSum = List.Sum(List.Transform(List.Alternate(DigitsList, 1, 1), each Number.FromText(_))),
EvenSum = List.Sum(List.Transform(List.Alternate(DigitsList, 0, 1), each Number.FromText(_))),
TotalSum = OddSum * 3 + EvenSum,
Mod10 = Number.Mod(TotalSum, 10),
CheckDigit = if Mod10 = 0 then 0 else 10 - Mod10
in
CheckDigit
)
in
AddCheckDigit