我正在使用 Excel 制定复杂的旅行行程。该工作簿包括一张工作表,其中以一小时为单位进行可视化表示,其中每列代表一天中的一个时间,每行代表一天。行程中的每个城市都有指定的颜色。我希望工作表上每个单元格的背景颜色反映当前城市,“旅行”单元格(任何时候您不在城市中)为白色。
这是我试图以编程方式获取的手动着色示例:
使用条件格式执行此操作是一场噩梦,因为我有许多不同的颜色和条件,并且每次添加或更改城市时都需要编辑规则。使用堆叠条形图进行此操作是行不通的,因为您无法使用公式更改颜色;每次更新时您都必须手动为图表着色。
我几乎让它在带有迷你图的Google表格中工作(如果Google允许每个迷你图使用三种颜色而不是只有两种......)但是Excel没有水平条迷你图,你不能轻松地覆盖文本,并且 您无法像在表格中那样通过公式设置 Excel 迷你图颜色。
由于涉及到的某些计算机上的安全设置,我不想使用 VBA,但如果这是唯一的方法,我就会这么做。
假设您有一张包含出发和到达日期的表格,并且您有实际的日期和时间,以下是使用条件格式的一种方法:
使用以下条件:
=AND(INDEX($AD$2:$AD$6,MATCH($A2,$AB$2:$AB$6,0))<B$1,MOD((ROW()),3)=0)
=AND(INDEX($AD$2:$AD$6,MATCH($A2,$AB$2:$AB$6,0))<B$1,MOD((ROW()),3)=1)
=AND(INDEX($AD$2:$AD$6,MATCH($A2,$AB$2:$AB$6,0))<B$1,MOD((ROW()),3)=2)
=AND(INDEX($AC$2:$AC$6,MATCH($A2,$AB$2:$AB$6,0))>B$1,MOD((ROW()),3)=0)
=AND(INDEX($AC$2:$AC$6,MATCH($A2,$AB$2:$AB$6,0))>B$1,MOD((ROW()),3)=1)
=AND(INDEX($AC$2:$AC$6,MATCH($A2,$AB$2:$AB$6,0))>B$1,MOD((ROW()),3)=2)
其中
$AD$2:AD$6
是包含日期的列,B$1
是第一个包含时间的单元格。
备注:
MOD()
应该等于什么。结果(您可以看到右侧到达和出发时间的表格):
编辑:您可能希望根据所需结果将公式编辑为
>=
而不是 >