我正在尝试对两个表格进行颜色编码。样本很差
表格1 | A | b | C |
---|---|---|---|
埃 | 一个* | 是 | 韋斯特 |
F | 一个* f | 呸 | 嗎 |
G | 一个* | 嗎 | 額 |
和
表2 | A | 乙 | C |
---|---|---|---|
埃 | A*E | 是 | 加拿大 |
F | A*F | 贝*弗 | 碳*氟 |
G | 成绩 | 比格 | 碳 |
我想对两个表中的单元格进行颜色匹配,其中表 1 范围 (2:,2:) 中的单元格值乘以表 2 范围 (2:,2:) 中的单元格值位于两个数字 X 和 Y 之间(与表无关)
此问题针对的是 excel 版本 2305
我到目前为止尝试过
=AND(A1*D1>=($G$1-$G$2), A1*D1<=($G$1+$G$2))
作为条件格式,其中 G1 和 G2 是 X 和 Y 的数字,A1 和 D1 是表格的开头
另外这是我在 googlesheets 中使用的 ucrrent 公式
=ARRAYFORMULA(AND((B2:D4*F2:H4)>=X, (B2:D4*F2:H4)<=Y))
b2 和 f2 是每个表的开头
上述解决方案均不起作用,因为它没有达到我的预期。
答案1
所以我意识到这只有当表 1 和表 2 之间存在一个匹配时才有可能
因此我将代码恢复为在两个表之间创建热图
下面的代码是一个python脚本,它为X的值和delta作为方差创建热图,其中乘法的结果应该介于X-Delta和X + Delta之间。它将热图保存在同一目录中名为Table1_res和Table2_res的两个csv文件中。然后它继续使用计算表在初始表上绘制热图
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
table1 = pd.read_csv("table1.csv",index_col=False)
table2 = pd.read_csv("table2.csv",index_col=False)
X = 600
delta = 5
num_rows, num_cols = table1.shape
table1_res = pd.DataFrame(np.zeros((num_rows, num_cols)), columns=table1.columns)
num_rows, num_cols = table2.shape
table2_res= pd.DataFrame(np.zeros((num_rows, num_cols)), columns=table2.columns)
for row1 in range(table1.shape[0]):
for col1 in range(table1.shape[1]):
if col1 == 0:
continue
cell1 = table1.iloc[row1,col1]
for row2 in range(table2.shape[0]):
for col2 in range(table2.shape[1]):
if col2 == 0:
continue
cell2 = table2.iloc[row2,col2]
if cell1 * cell2 >= X-delta and cell1 * cell2 <= X + delta:
table1_res.iloc[row1,col1] += 1
table2_res.iloc[row2,col2] += 1
table1_res.to_csv("table1_res.csv",index=False)
table2_res.to_csv("table2_res.csv",index=False)
#fix index
table1_res = table1_res.iloc[:,1:]
table2_res = table2_res.iloc[:,1:]
table1ylabel =table1.iloc[:,0]
table2ylabel = table2.iloc[:,0]
table1 = table1.iloc[:,1:]
table2 = table2.iloc[:,1:]
# Create a color heatmap using values from table2_subset on table1_subset
colors = ['#FFA500', '#FFFFFF'] # White to orange
cmap = LinearSegmentedColormap.from_list('custom_cmap', colors)
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))
sns.heatmap(table1_res, cmap="Reds", annot=table1, fmt=".1f", cbar=False,ax=axes[0],yticklabels=table1ylabel)
axes[0].set_title('Table 1')
axes[0].set_xlabel('Number of Emitters')
axes[0].set_ylabel('Number of Laterals')
sns.heatmap(table2_res, cmap="Reds", annot=table2, fmt=".1f", cbar=False,ax=axes[1],yticklabels=table2ylabel)
axes[1].set_title('Table 2')
axes[1].set_xlabel('Emitter Flow rate [l/h]')
axes[1].set_ylabel('Irrigation duration [h]')
plt.tight_layout()
plt.show()