2. 油藏开发动态数据准备
动态曲线与井组分析的质量,八成取决于数据准备。Excel 模板再漂亮,如果井史、生产日报、注采数据三套来源口径不一致,画出来的曲线只会把错误放大。本节的任务很明确:把分散的原始数据整理成一张结构统一、可直接被公式和图表引用的“模板数据源工作表”。
一、先明确三类数据的分工
油藏开发动态涉及的数据来源不同,用途也不同,整理时必须先分清:
- 井史数据:记录井的基础属性与生命周期事件,如井号、井别(采油井/注水井/观察井)、投产日期、完钻井深、射孔层位、工作制度变更、关井与复产、转注与补孔等。它决定“这口井在某个时间点处于什么状态”。
- 生产日报:按日记录的采出端动态,典型字段包括日产液、日产油、日产水、含水率、套压、油压、流压、动液面、生产时间(小时)。它是曲线的主体数据。
- 注采数据:注水井的日注水量、注水压力、分层配注量,以及井组的注采对应关系。它是井组分析中判断“注水是否见效、水驱方向是否合理”的关键输入。
三类数据在时间粒度上要统一到“日”,在对象粒度上要统一到“井号”,这是后续所有清洗工作的基准。
二、数据清洗的四个关键动作
1. 统一井号与日期格式。现场数据常见“中12-3”“Z12-3”“中12—3”混用,日期有“2024/3/5”“2024.3.5”“20240305”多种写法。建议在数据源表中单独设“标准井号”列,用查找替换或公式统一为“区块代号-序号”格式;日期统一为 Excel 日期序列值,显示格式设为 yyyy-mm-dd,避免文本日期导致排序和透视失败。
2. 处理缺失与异常值。生产日报中停产井当天可能无记录,或记为 0。要区分“真实零产量(关井)”与“数据缺失(未上报)”:前者应保留 0 并标注生产时间为 0,后者应留空而非填 0,否则会拉低平均日产油。异常值判断可用简单规则,例如含水率大于 100%、日产油大于日产液、动液面为负值等,先标记再人工核对,不要直接删除。
3. 统一计量单位。液量、油量常用 m³/d 或 t/d,注水量常用 m³/d,压力用 MPa。同一张表中必须统一,建议液、油、水均用 m³/d,压力用 MPa,并在表头注明单位。若原始数据为吨,需按密度换算,换算系数单独放在参数区,便于追溯。
示例:将文本日期转为标准日期
=IFERROR(DATE(VALUE(LEFT(A2,4)),VALUE(MID(A2,5,2)),VALUE(RIGHT(A2,2))),"")
示例:含水率校验(液量>0 时)
=IF(AND(C2>0,D2>=0),D2/C2,"")
4. 建立井号—日期唯一键。在数据源表中增加“井号&日期”组合键列,用于后续 VLOOKUP/XLOOKUP 匹配和去重检查。用“删除重复值”或 COUNTIFS 校验同一井同一日期是否只有一条记录,这是保证曲线不出现锯齿跳点的关键一步。
三、模板数据源工作表的结构设计
建议采用“一表一记录”的长表结构,而不是每口井一列的宽表。长表便于透视表和动态图表按井号、日期筛选。核心字段可设计为:标准井号、日期、井别、生产时间、日产液、日产油、日产水、含水率、套压、油压、流压、动液面、日注水量、注水压力、数据来源、备注。其中含水率可由公式计算,不手工录入。
四、数据流与校验关系
下图展示三类原始数据经过清洗、标准化后汇入统一数据源,并被动态曲线与井组分析引用的关系。图中同时标出了唯一键校验和单位统一这两个关键控制点。
五、一个可落地的数据源表样例
以下为数据源工作表的字段与两行示例记录(示例数据为教学假设,非实测值),可直接作为建表参照:
| 标准井号 | 日期 | 井别 | 生产时间(h) | 日产液(m³/d) | 日产油(m³/d) | 日产水(m³/d) | 含水率(%) | 日注水量(m³/d) | 数据来源 |
|---|---|---|---|---|---|---|---|---|---|
| 中12-3 | 2024-03-05 | 采油井 | 24 | 38.5 | 6.2 | 32.3 | 83.9 | — | 生产日报 |
| 中12-5 | 2024-03-05 | 注水井 | 24 | — | — | — | — | 45.0 | 注采数据 |
建表后应做三项验收:一是用透视表按井号统计记录条数,与井史中的在册井数比对;二是抽查 3~5 口井的日产液、日产油、日产水是否满足“液=油+水”的平衡关系(允许计量误差);三是确认日期列可正常排序、无文本型日期。三项通过,数据源即可交给后续曲线模板使用。
数据源工作表一旦定型,后续所有动态曲线、含水率变化、注采比计算都应只引用这一张表,原始数据只做归档不再直接引用。这样既保证了口径统一,也让模板具备了换一批井、换一个时间段仍能复用的能力。