如何将元素推送到Excel范围以便对对象/数组进行字符串化?

时间:2016-08-24 10:25:36

标签: excel excel-formula

如何在Excel公式中构造以下字符串:

  

{“ios”:[1601291711],“android”:[1601291129],“amazon”:[1601221648]}

不同的平台是独立的元素,所以我可以有1到3个活动平台。在简单的2x3 excel表中,当放置“x”时启用活动平台,并在删除“x”时禁用。

使用命名范围,iosV ='“ios”:[1601291711]',androidV ='“android”:[1601291129]',...另一方面,activePlatforms是范围1x3,所有“x”

我写了一个工作正常的公式:

="{" & CHOOSE(COUNTA(activePlatforms),
IFS(ios="x",iosV,android="x",androidV,amazon="x",amazonV),
IFS(
    AND(ios="x",android="x"), JOIN(", ",iosV,android),
    AND(ios="x", amazon="x"), JOIN(", ", iosV, amazonV),
    AND(android="x",amazon="x"),JOIN(", ",androidV,amazonV)
),
JOIN(", ",iosV,androidV,amazonV)) & "}"        

我正在寻找更短的公式和/或其他方法来做到这一点。我对自定义公式(又称Google Script / VBA)不感兴趣。

1 个答案:

答案 0 :(得分:0)

我找到了n平台的解决方案:)

首先,构建下一个表: Active Platforms Table. 在单元格“E1”的公式是:

=SORT(D1:D4,1,FALSE)

然后,将下一个公式粘贴到需要字符串构造的位置:

="{"&JOIN(",",OFFSET(E1,0,0,4-COUNTBLANK(E1:E4),1))&"}"

那就行了!