从Excel中具有不同大小的两列中减去值

时间:2018-08-22 14:32:00

标签: excel excel-formula

我有四列的下表:

> 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))

但是它看起来像一个不完整的公式,由于列大小的差异,我什至不确定自己是否做对了。谁能帮助我提出有关此操作的想法?

如果我不清楚,我已草绘了一个示例供参考: enter image description here

1 个答案:

答案 0 :(得分:2)

这是解决问题的一种方法:将A-D中的数据与下图一同显示。

enter image description here

首先,您需要找到一列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)