Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 整理电子元件清单?_Sorting_Google Apps Script_Google Sheets_Google Sheets Formula_Array Formulas - Fatal编程技术网

Sorting 整理电子元件清单?

Sorting 整理电子元件清单?,sorting,google-apps-script,google-sheets,google-sheets-formula,array-formulas,Sorting,Google Apps Script,Google Sheets,Google Sheets Formula,Array Formulas,在电子表格中,电子元件材料清单按其值列出元件,例如,1R0(表示1欧姆)、1K0(表示1千欧姆)或22p(表示22微微法拉)、1n0(表示1纳米法拉)。这种格式的数字如何按数字顺序排序 之前,未排序: 电阻 1K0 1R0 电容器 1n0 22便士 之后,排序: 电阻 1R0 1K0 电容器 22便士 1n0 您可以像这样自定义排序,定义每个标量的排序顺序: =ARRAYFORMULA(SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(IFERROR( A

在电子表格中,电子元件材料清单按其值列出元件,例如,1R0(表示1欧姆)、1K0(表示1千欧姆)或22p(表示22微微法拉)、1n0(表示1纳米法拉)。这种格式的数字如何按数字顺序排序

之前,未排序:

电阻

  • 1K0
  • 1R0
电容器

  • 1n0
  • 22便士
之后,排序:

电阻

  • 1R0
  • 1K0
电容器

  • 22便士
  • 1n0

您可以像这样自定义排序,定义每个标量的排序顺序:

=ARRAYFORMULA(SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(
 ARRAY_CONSTRAIN(SORT({REGEXEXTRACT(A2:A, "(\d+)(.*)"), 
               VLOOKUP(REGEXEXTRACT(A2:A, "\d+(.*)"), 
 {"R0", 1; 
  "K0", 2; 
  "M0", 3}, 2, 0)}, 3, 1, 1, 1), 999^99, 2))),,999^99)), " ", ))

您可以使用以下命令对值进行排序:

var unitMap={
“p”:1e-12,
“n”:1e-9,
“u”:1e-6,
“m”:1e-3,
“R”:1,
“K”:1e3,
“M”:1e6,
}
var unitRegex=/[pnumRKM]/;
函数解析值(val){
var result={};
var unitIdx=val.search(unitRegex);
var int=parseInt(val.substring(0,unitIdx));
var dec=parseFloat(“0.”+val.substring(unitIdx+1));
var乘数=单位映射[val[unitIdx]];
返回(整数+小数)*乘数;
}
/**
*对E96值进行排序。
*
*@param{range}输入要排序的范围。
*@param{number}输入要排序的列,从1开始。
*@param{boolean}输入为升序
*@返回排序范围。
*@customfunction
*/
函数CUSTOMSORT(值,排序列,升序){
值。排序(函数(a,b){
var a_value=parseValue(a[sort_column-1]);
var b_value=parseValue(b[sort_column-1]);
返回值是否递增?a_值-b_值:b_值-a_值;
});
返回值;
}
这种行为与您从Sheets的内置
=SORT()
函数中所期望的几乎相同,尽管功能较少。您可以看到以下两个示例:


您可能需要创建一个(可能是隐藏的)列,其中包含电阻器的十进制值,然后按该列排序。如果该列无法隐藏,您可以将字体颜色设置为与背景颜色相同(白色、白色)。共享一份包含所需输出示例的工作表副本您使用的所有单位符号是什么?对于欧姆,是否只有R0和k0?对于法拉,它只是p和n0吗?欧姆:R,k和M。法拉:pn和u@RobKam最后一件事:我是否应该假设对于欧姆,它是R0,k0,M0和法拉p,n,u(不带“0”)。你的问题将“p”和“n0”表示为法拉单位。这很好,谢谢,(只是我省略了对毫法拉的解析…)。