我正在做一个 excel 项目,其中有一个 excel 表,里面有 20 年内每天的百分比收益率数据。我只想知道每个月第一笔的收益率。如何使用 excel 来实现这一点?
我对 Excel 还很陌生,非常感谢任何详细的帮助。
tl:dr 以某种方式将每日数据转换为每月数据(每月第一次出现)
答案1
要生成每个月的第一个条目,请按照下面显示的方法操作:
怎么运行的:
单元格 O58 中的数组(CSE)公式:
{=MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73))}
单元格 P58 中的公式:
=IFERROR(INDEX($L$58:$L$73,MATCH($O58,$K$58:$K$73,0)),"")
注意:
如果您想跳过 O 列中的辅助数据,那么您可以使用这个数组(CSE)公式:
{=IFERROR(INDEX($L$58:$L$73,MATCH(MIN(IF(TEXT($K$58:$K$73,"MMMM")=$N58,$K$58:$K$73)),$K$58:$K$73,0)),"")}
使用以下方式完成数组公式Ctrl+Shift+Enter。
您可以根据需要调整公式中的单元格引用。
答案2
假设您的日期在 A 列,收益数据在 B 列。现在将 C 列设为“第一天吗?”,并在 C2 中输入以下公式:
=DAY(A2)=1
或者跳过周末(即每月的第一个工作日)
=DAY(A2)=DAY(WORKDAY(EOMONTH(A2,-1),1))
或者更万无一失的选项(以防错过日期/数据点)
=MONTH(A3)<>MONTH(A2) ...start from C3 (make C2 = TRUE)
这将实际上获取月份发生变化的第一个数据点(与其上方的行相比)。
双击单元格 C2 的最右下角(单击之前,鼠标光标会变成加号)。这将自动填充公式以及所有数据(只要公式列和数据之间没有空白列)。
现在选择整个标题行,单击主页 > 排序和筛选 > 筛选。您应该看到每个列标题旁边出现小箭头。单击“是第一天吗?”旁边的箭头,然后取消选中“FALSE”。现在该月的所有非第一天都将被隐藏。如果需要,您可以将这些数据复制并粘贴到新工作表中。要再次查看所有数据,请单击主页 > 排序和筛选 > 清除。