【发布时间】:2021-01-09 01:09:25
【问题描述】:
使用 GoogleSheet,我有两个表格作为输入:
第一个表:
| Name | val1 | val2 | val3 | val4 |
|---|---|---|---|---|
| Joe | X | X | X | |
| Jess | X | X | X | |
| Mark | X | X |
表示 Joe 有 val1 。 val3 。 val4, Jess 有 val1 。 val2 。 val4, Mark 有 val2 。 val4
第二张表就像一个矩阵:
| val1 | val2 | val3 | val4
val1 警告A 警告B
val2 errA
val3
val4
识别与某些文本关联的一些值:val1.val3:warn A, val1.val4:warn B, val2.val3:err A
因此,我想加入这两个表以提取这样的表:
姓名 |结果
乔 警告 B (val1.val4),警告 A (val1.val3)
Jess 警告 A (val1.val4)
马克
我需要使用 googlesheet 解决它,但我失败了,我有太多的转换步骤,最后我迷路了。
目前,我认为使用二进制或运算符可能会有所帮助。我是这样进行的:
#1 将第二个表 table2 转换为 base2 的新 dec 值:
| val1 | val2 | val3 | val4
val1
10 9
val2 6
val3
val4
- 每个位对应于 Val[位位置]。例如:val1 => 1000,val2 => 0100
- (Val1, Val4) => BITOR(1000,0001) = 9
#2 第一个表table1的同种变换:
姓名 | val1(8) | val2(4) | val3(2) | val4(1)|
乔 8 2 1
杰西 8 4 1
标记 4 1
#3 从table2中提取相关值 =过滤器(转置(展平(table2)),转置(展平(table2))0) 我得到: 10 | 9 | 6(来自表2)
#4 我对 table1 中的行求和:
| Name | sum |
|---|---|
| Joe | 11 |
| Jess | 13 |
| Mark | 5 |
#5 我在 terms1 11 | 的每个术语之间应用 BITAND 运算符 IF(BITAND(term2,term1)=term1,"Warn") 13 |5 和条款2 : 10 | 9 | 6
对于乔:
So as BITAND(11,10)=10 then i got a "Warn" for 1010 => (Val1,Val3)
So as BITAND(11,9)=9 then i got a "Warn" for 1001 => (Val1,Val4)
So as BITAND(11,6) not = 6 then nothing
但是我以一小组数据为例实现了这一点,并且关于列数和行数没有什么是动态的......我想是否有一种函数或查询可以很好地替换我糟糕的代码。
【问题讨论】:
-
你能展示一下你到目前为止所做的尝试吗?请编辑您的问题以包含它。
-
我相信期望输出的例子是错误的。请检查一下
-
谢谢你们的cmets,我更新了。
标签: google-sheets google-sheets-formula