整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

不再蒙圈:细说条件格式中的引用方式

伙伴们好啊,今天老祝和大家说说条件格式有关的问题。

在条件格式中,可设置的格式包括数字格式、字体、边框和填充颜色等。Excel内置的条件格式规则包括“突出显示单元格规则”、“最前/最后规则”、“数据条”、“色阶”和“图标集”,能够满足大多数用户的应用需求。

除了这些内置的功能,还可以在条件格式中使用函数公式,来完成更加个性化的设置。敲黑板,划重点:

如果公式返回的结果为TRUE或是不等于0的任意数值,则应用预先设置的格式效果。如果公式返回的结果为FALSE或是数值0,则不会应用预先设置的格式效果。

在使用在条件格式中使用函数公式时,有一个让很多小伙伴晕头转向的问题——引用方式。这个问题解决不了的话,一切努力就白瞎了。

下面咱们以几个常用的条件格式设置,来说说这个问题:

应用一:突出显示低于60的成绩

本例应用重点:

如果选中的是一个单元格区域,可以以活动单元格作为参照编写公式,设置完成后,该规则会应用到所选中范围的全部单元格。

本例中每个单元格单独与数值60进行对比,所以使用相对引用方式。

应用二:突出显示未结算的记录

本例应用重点:

如果选中的是多行多列的区域,需要同时考虑列行方向和列方向的引用方式。

本例中,每一列都根据C列的内容进行判断,因此C2使用列绝对引用方式,而每一行都根据同一行中C列的内容判断,所以行方向使用相对引用。

应用三:自动标记收益率最高的债券

本例应用重点:

如果需要在公式中固定引用某一行或某一列时,可以理解为在所选区域的活动单元格中输入公式,然后将公式复制到所选范围内。

本例中,先使用绝对引用方式,用MAX函数计算出$D:$D的最大值,然后用$D2与之进行比较。因为每一列都用D列中的数据来比较,因此列方向使用绝对引用方式。而每一行中都根据同一行中D列的内容判断,所以行方向使用相对引用。

应用四:按指定间隔填充颜色

本例应用重点:

如果选中的是一列多行的单元格区域,需要注意活动单元格中的公式在向下复制时引用范围的变化,也就是行方向的引用方式。本例中,使用MOD函数计算行号与E1单元格相除的余数,每一行、每一列都引用E1单元格中指定的数值,所以要使用绝对引用。

同样,如果选中的是一行多列的单元格区域,需要注意活动单元格中的公式在向右复制时引用范围的变化,也就是列方向的引用方式。

好了,今天咱们的内容就是这些吧,祝小伙伴们一天好心情!

图文制作:祝洪忠

专业的职场技能充电站

例简介

有些网站为了凸显某部分字体,而引入自定义字体,但由于自定义字体相对都比较大(几M),导致页面加载缓慢;所以本文介绍三种压缩字体的方法,可根据项目情况自行选择。


压缩方法

1、利用Fontmin程序(效果如下图)

1)运行Fontmin程序后,1位置输入需要生成的文字内容,2位置拖入ttf文件(源文件7947KB);

2)点击“生成”按钮,生成成功后,弹出生成文件(ttf文件变成11KB),根据浏览器兼容性引入文件。

Tips:当需要增加新的文字时,需要重新生成文件。

2、利用Node.js+Fontmin组件(效果如下图)


1)配置好Node.js框架(本文使用Express);

2)在index.js文件增加代码,用来自动读取“views”下面的所有*.ejs文件的文字,然后根据“src”的ttf源文件,使用Fontmin组件生成压缩文件(生成目录“dest”)。

Tips:适用于多文件情况下,自动汇总生成。

// 遍历所有文件提取里面的所有文字
const fs = require("fs");
const Fontmin = require('fontmin');
let set = new Set();


//get all possible characters
const scanFolder = (dir, done) => {
    let results = [];
    fs.readdir(dir, (err, list) => {
        if (err) {
            return done(err);
        }
        let i = 0;
        (function iter() {
            let file = list[i++];
            if (!file) {
                return done(null, results);
            }
            file = dir + '/' + file;
            console.log(file)
            fs.stat(file, (err, stat) => {
                if (stat && stat.isDirectory()) {
                    scanFolder(file, (err, res) => {
                        results = results.concat(res);
                        iter();
                    });
                } else {
                    results.push(file);
                    iter();
                }
            });
        })();
    });
};
//get all possible characters
const generateFinalHTML = finalString => {
    const fontmin = new Fontmin()
        .src('public/fonts/SourceHanSansCN-Medium.ttf')
        .dest('public/fonts/build/')
        .use(Fontmin.glyph({
            text: finalString,
            hinting: false
        }))
        .use(Fontmin.ttf2woff({
            deflate: true
        }));




    fontmin.run((err) => {
        if (err) {
            throw err;
        }
    });
}
//get all possible characters
scanFolder("views", (n, results) => {
    results.forEach(file => {
        const result = fs.readFileSync(file, 'utf8');
        const currentSet = new Set(result)
        set = new Set([...set, ...currentSet]);
    });
    generateFinalHTML(Array.from(set).join(""))
})

3、利用font-spider组件(效果如下图)

1)安装font-spider组件;

npm install font-spider -g

2)新建index.html文件;

3)执行下面命令生成压缩文件。

font-spider ./*.html


总结

可以根据项目实际情况,选择适当的方法。

考:https://www.jb51.net/article/163170.htm

vue中静态资源的引入机制

静态资源可以通过两种方式进行处理:

在 JavaScript 被导入或在 template/CSS 中通过相对路径(以 . 开头)被引用。这类引用会被 webpack 处理。

如 <img src="..."> 、 background: url(...) 和 CSS @import 的资源

例如, url(./image.png) 会被翻译为 require('./image.png')

放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理,你需要通过绝对路径来引用它们。如果 URL 是一个绝对路径,例如 /images/foo.png ,它将会被保留不变

假设有这样一个目录:

vue-path/
----- public/
-------- images/
------------ XX.jpg
----- src/
-------- assets/
------------ images/
---------------- XX.jpg
-------- App.vue

App.vue

一、常见的引入方式,路径是固定的字符串,图片会被webpack处理,文件若丢失会直接在编译时报错,生成的文件包含了哈希值:

<img src="./assets/images/01.jpg" alt=""> 

编译后: