我有四列的下表:
> x1 y1 x2 y2
> 1.2 800.5 1.4 200
> 2.6 850.3 7.6 300
> 3.1 900.1 9.2 400
> 4.6 949.9 5.5 500
> 5.2 999.7 10.2 600
> 6.7 1049.5 8.4 700
> 7.8 1099.3
> 8.3 1149.1
> 9.1 1198.9
> 10.1 1248.7
我想再增加两列。一个包含与x1和x2列匹配的数字,另一个包含与该行匹配的值之间存在差异的数字,如下表所示:
x1 y1 x2 y2 x3 y3 = y2-y1
1.2 800.5 1.4 200 1.2 (800.5-200)
2.6 850.3 7.6 300 5.2 (999.7-500)
3.1 900.1 9.2 400 7.8 (1099.3-300)
4.6 949.9 5.5 500 8.3 (1149.1-700)
5.2 999.7 10.2 600 9.1 (1198.9-400)
6.7 1049.5 8.4 700 10.1 (1248.7-600)
7.8 1099.3
8.3 1149.1
9.1 1198.9
10.1 1248.7
换句话说,第x3列应包含与x1和x2都匹配的值(条件是数字应更接近,例如1.2&1.4),而y3应包含减去y1和y2所得的值,对应于匹配的行。 x3和y3都必须使用x1,x2,y2和y3进行评估。
到目前为止,我一直在手动执行此操作,但是对于一长串表来说,它已经筋疲力尽了,我一直认为excel中应该有一种方法,我无法弄清楚。我尝试过
=INDEX(x1_array,MATCH(x2_array,y1_array,-1))
但是它看起来像一个不完整的公式,由于列大小的差异,我什至不确定自己是否做对了。谁能帮助我提出有关此操作的想法?
答案 0 :(得分:2)
这是解决问题的一种方法:将A-D中的数据与下图一同显示。
首先,您需要找到一列E,以找到最接近的x1来匹配每个x2。这是资源: https://exceljet.net/formula/find-closest-match
然后,您需要匹配列F中的Y1。例如F2为const path = require('path');
const merge = require('webpack-merge');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ScriptExtPlugin = require('script-ext-html-webpack-plugin');
const {AngularCompilerPlugin} = require('@ngtools/webpack');
const ProvidePlugin = require('webpack/lib/ProvidePlugin');
const HotModuleReplacementPlugin = require('webpack/lib/HotModuleReplacementPlugin');
common = {
entry: [
'jquery',
'./src/main.ts'
],
output: {
path: __dirname + '/dist',
filename: 'app.js',
publicPath: '/',
},
resolve: {
extensions: ['.ts', '.js', 'json']
},
module: {
rules: [
{
test: /\.ts$/,
loader: '@ngtools/webpack'
},
{
test: /\.(html)$/,
use: {
loader: 'html-loader',
}
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot)$/,
loader: 'file-loader?name=assets/[name].[hash].[ext]'
},
{
test: /\.component.scss$/,
use: [
'to-string-loader',
'css-loader',
'sass-loader',
]
},
{
test: /(styles.scss|variables.scss|heading.css)$/,
use: [
'style-loader',
'css-loader',
'sass-loader',
]
},
{
test: /.(png|woff(2)?|eot|ttf|svg)(\?[a-z0-9=\.]+)?$/,
loader: 'url-loader?limit=100000'
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: __dirname + '/src/index.html',
output: __dirname + '/dist',
inject: 'head',
}),
new ScriptExtPlugin({
defaultAttribute: 'defer'
}),
new AngularCompilerPlugin({
platform: 0,
tsConfigPath: './tsconfig.json',
entryModule: './src/app/app.module#AppModule',
sourceMap: true,
}),
new ProvidePlugin({
"window.jQuery": "jquery",
Hammer: "hammerjs/hammer"
}),
]
};
devServer = function () {
return {
devtool: 'inline-source-map',
optimization: {
minimize: false
},
plugins: [
new HotModuleReplacementPlugin(),
],
'devServer': {
port: 8070,
hot: true,
historyApiFallback: true,
publicPath: '/',
progress: true
}
}
};
module.exports = function (env) {
console.log('Launched in', env, 'mode.');
if (env == 'production') {
return common;
} else if (env == 'development') {
return merge([common, devServer(),])
}
};
最后,从包含y2s的col偏移MATCH,就完成了。在我的示例中,G2是=MATCH(E2,$A$2:$A$11,0)
,而H2只是=OFFSET($A$1,F2,1)
。