【问题标题】:Excel - get reference to the merged cell aboveExcel - 获取对上面合并单元格的引用
【发布时间】:2020-01-17 17:50:53
【问题描述】:

我有一个类似行的日历 - 完全静态 - 日期是简单的数字(不是日期)。 [

A 还有一个假期列表(名称 | 日期)。

我想根据假期列表中的匹配,使用以下公式有条件地格式化日期(I10 为 1 - 从 1 月 1 日开始)

=ISNUMBER(MATCH(DATE(_year,month,I$10),HolidayListNamedRange,0)) 

但问题是我取决于月份。

有没有办法从日期本身(这是一个数字)确定月份,并以某种方式使用上面合并的包含月份名称的行? 例如:获取 6 的单元格地址,减去 -1 以获取上面的行并以某种方式识别合并的单元格并获取值。

希望是有道理的! 谢谢!

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    在合并区域中,值存储在第一个单元格中,这意味着在这种情况下,必须在该月第一个日期上方的单元格中找到该值。 要查找第一个日期,请从列号中减去存储在列中的数字。

    =COLUMN(L2)-L2+1
    

    在我的示例中找到从 09.01 开始的第一天。

    通过 INDEX 函数,我们可以找到月份名称。

    =INDEX(1:1,0,COLUMN(L2)-L2+1)
    

    这会在我的示例中找到 09.01 的“一月”

    接下来,要将月份名称转换为数字,请使用以下公式:

    =MONTH(DATEVALUE("1"&LEFT(INDEX(1:1,0,COLUMN(L2)-L2+1),3)))
    

    这在我的示例中从 09.01 返回 1。

    示例:

    【讨论】:

    • 从列号中减去天数以获得包含月份的单元格的位置:-)
    【解决方案2】:

    合并的标题占据合并单元格的最左侧位置,因此您需要找到当前日期或之前的最后一个字符串,使用该信息计算日期,并在您的假期范围内查找结果:

    =COUNTIF(Holidays,DATEVALUE(D10&INDEX($D9:D9,MATCH("zzz",$D9:D9))))
    

    =COUNTIF(Holidays,DATEVALUE(D10&HLOOKUP("zzz",$D9:D9,1,TRUE)))
    

    假设合并后的单元格与该月的第一天在同一列中开始(在您的屏幕截图中看不到)。

    【讨论】:

    • 看起来不错!谢谢你的帮助!我也会检查以前的解决方案,让大家知道结果:)
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 2015-10-12
    • 2014-05-21
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2021-05-10
    • 2018-02-12
    相关资源
    最近更新 更多