Google Sheets Сантиметры в Дюймы / Футы - PullRequest
0 голосов
/ 07 февраля 2020

В этом году я читал много постов на этом сайте, и должен сказать, что почти всегда находил ответ на свой вопрос, поэтому сначала большое спасибо за всю помощь, которую вы мне уже оказали.

Причина моего первого поста в том, что я не могу найти способ преобразования сантиметров в дюймы или футы в текстовых ячейках.

[ОБНОВЛЕНО] Вот 5 возможностей для моих данных:

  • 45
  • 356 x 160
  • (25-28) x (45-49)
  • 200 x 77 и 202 x 80
  • 202 x 78, 200 x 77 и 202 x 80

Я хотел бы иметь формулу, которая может изменить число без изменения остальных. Формула, которая для:

115-118 x 45-54

Возвращает:

45-46 x 18-21

Как:

=ROUND(115/2.54)&"-"&ROUND(118/2.54)&" x "&ROUND(45/2.54)&"-"&ROUND(54/2.54)

Ответы [ 3 ]

2 голосов
/ 07 февраля 2020

попробовать:

=ARRAYFORMULA(IF(A2:A="",,
 IF(REGEXMATCH(A2:A&"", "(\d+) x (\d+), (\d+) x (\d+) and (\d+) x (\d+)"),
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,1)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,2)&", "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,3)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,4)&" and "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,5)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,6),
 IF(REGEXMATCH(A2:A&"", "(\d+) x (\d+) and (\d+) x (\d+)"),
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,1)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,2)&" and "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,3)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,4),
 IF(REGEXMATCH(A2:A&"", "(\d+) x (\d+)"), 
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,1)&" x "&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,2),
 IF(REGEXMATCH(A2:A&"", "(\(\d+-\d+)\) x \((\d+-\d+)\)"), "("&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,1)&"-"&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,2)&") x ("&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,3)&"-"&
   INDEX(ROUND(CONVERT(SPLIT(REGEXREPLACE(A2:A, "\D+", " "), " "), "cm", "in")),,4)&")", 
 ROUND(CONVERT(A2:A*1, "cm", "in"))))))))

0

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

Я обнаружил, что если кому-то нужно:

 =ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
 TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " ")="",,IF(ROUNDDOWN(CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft"))=0,"",ROUNDDOWN(CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft"))&"'")&IF(ROUND((CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft")-ROUNDDOWN(CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft")))*12)=0,"",ROUND((CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft")-ROUNDDOWN(CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "ft")))*12)&"""")), IFERROR(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(F12,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " ")))),,999^99)),
 " - ", "-"), "( ", "("), " )", ")"), " , ", ", "))

Для:

(115-12) x (34-245), (115-44) x (34-245) and (115-44) x (34-245)

Возвращает:

(3'9"-5") x (1'1"-8'), (3'9"-1'5") x (1'1"-8') and (3'9"-1'5") x (1'1"-8')
0 голосов
/ 08 февраля 2020

короче:

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
 TRANSPOSE(QUERY(TRANSPOSE(IFERROR(IF(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " ")="",,ROUND(CONVERT(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " "), "cm", "in"))), IFERROR(
 SPLIT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2:A,
 "-", " - "), "(", "( "), ")", " )"), ", ", " , "), " ")))),,999^99)),
 " - ", "-"), "( ", "("), " )", ")"), " , ", ", "))

0

...