我有两列如下。
A B C
1 1/9/2016 12:57:48 PM Text A
2 1/9/2016 1:04:48 PM Text A
3 1/9/2016 1:05:04 PM Text A
4 1/9/2016 1:05:14 PM Text A
5 1/9/2016 1:05:15 PM Text B A5 – A1
6 1/9/2016 1:05:38 PM Text A
7 1/11/2016 9:57:12 AM Text A
8 1/15/2016 10:42:55 AM Text A
9 1/15/2016 10:45:21 AM Text B A9 – A6
10 1/15/2016 10:58:12 AM Text A
查询: 我需要Cell的细节:A5&单元格:单元格C5中的A1,C9中的A9-A6等等。 所以基本上,我们必须查看B列以获得文本值的更改 - 并减去相应的A列值。希望我对这个问题的解释是可以理解的。如果没有 - 请告诉我。如果可能的话,我可以帮助更好地理解。
答案 0 :(得分:1)
你可以再使用一列吗?如果是这样,解决方案可能如下所示:
让D为附加列
公式:= IF(B1 =“文字B”,A2,D1)
公式:= IF(B2 =“文字B”,A2-D1,“”)
答案 1 :(得分:1)
以下是@Agata Powalka答案中对C2公式的两处小改动,这很好:
=IF(B2 = "Text B", IF(B1 = "Text B", A2, A2-D2), "")
这处理当Text B
行紧挨着另一行发生时的情况,其中它将显示列A
中的任何内容。为了清楚起见,我还将A2-D1
更改为A2-D2
;它不会改变结果。
答案 2 :(得分:0)
在Google表格中,它有点棘手,但只能使用公式。我假设没有标题和文字要查找'B'
,A:A
是日期,B:B
是文字。添加一列D
并将D1
设置为以下内容:
=index(
$A:$A,
index(
transpose(split("1 "&join(" ", arrayformula(if($B:$B="B", row($B:$B), ""))), " ")),
countif($B$1:$B1, "B"),
1
)
)
以上公式将生成包含文本'B'
的最后日期。现在复制D1
并向下拖动。现在结果列C
是微不足道的。在C1
上输入以下内容并向下拖动。
=if(B1="B", A1-D1, "")
示例文件为here,下面是截图。我将列C
的格式设置为duration
,并在列A
上强调了一些日期。
如果您更喜欢自定义功能或运行脚本,那么几十行GAS也可以完成这项工作。就个人而言,我更喜欢公式,即使它有点难看。