文档库 最新最全的文档下载
当前位置:文档库 › Index

Index

U NIVERSITY OF L EIPZIG

Institute of Production Management and Industrial Information Management

Marschnerstr. 31, 04109 Leipzig, Germany

Phone: [49] / (0)341 / 4941-182, Fax: -125

Report No. 17

The Threshold Waving Algorithm for Job Shop Scheduling

Jukka Siedentopf

?siedentopf@wifa.uni-leipzig.de?

- to appear -

August 1995

Index

1Introduction1

2Threshold waving2

2.1The algorithm2

2.2Parametrization3 3Computational results4 4Comparison7 5Outlook8 References8

Summary

A unidirectional mutation-selection approach for the general job shop scheduling problem is presented. The underlying algorithm uses threshold accepting as an iterative search technique and incorporates a special non-monotonic threshold function (threshold waving). Search is performed in the space of operation sequences and, for the purpose of evaluation, is combined with a simple heuristic transforming operation sequences into schedules. Mutation of solution candidates is based on a critical path analysis and, additionally, on a probabilistically employed local hill-climbing operator. Effectiveness of the approach is demonstrated within a comparison with some well-known heuristic and exact algorithms.

Remark: A slightly shortened and changed version of of this report has been submitted to the Symposium über Operations Research, the 1995 Annual Conference of the DGOR, the GM?R, and the ?GOR.

1Introduction

In the field of combinatorial optimization an increasing number of approaches introducing some kind of stochastic search are recommended as alternatives to somewhat more conven-tional approaches of mathematical programming. A common characteristic of many of these approaches is the principle of generating new solution candidates (configurations) by per-forming some (often stochastic) perturbations (mutations or modifications) of already available ones. Another characteristic is that the selection of configurations permitted to remain in the solution process does not only depend on the quality of the solution represented by the con-sidered configuration, but also on external parameters.

The number of configurations involved in the solution process can serve as a separation crite-rion for the proposed approaches: In multidirectional approaches like genetic algorithms (GA) [e.g. 11] a multitude of configurations is managed in a population. Availability of several dif-ferent configurations is an indispensable requirement for the recombination of new confi-gurations from the building blocks of already available ones. Recombination is the predomi-nating principle for generating configurations in genetic algorithms. Mutation serves for adding new building blocks by implementing small stochastic perturbations in the available building material.

In another class of more simply structured unidirectional approaches, e.g. simulated annealing [e.g. 1] or derivates like threshold accepting [6, 7], only one configuration undergoes a process of mutation. Thus, selection is reduced to a decision whether a new, modified configuration will replace the old one.

Facing complex scheduling problems with approaches using recombination it is a major prob-lem to find a suitable representation of schedules: By means of reducing the search space, the desired structure should be capable of representing schedules effectively, i.e. maximizing the ratio of the number of feasible schedules to the number of representable ones. Simultaneously, in order to exploit the implicit parallelism of multidirectional approaches, the availability of a suitable recombination operator working on the proposed structure is presupposed. Short-comings of the ‘team-work’ of a representation structure and the corresponding recombination operator frequently causes inefficiencies: A lot of time is spent either searching the space of infeasible solutions, e.g. in case of binary representation, or recombining solutions without gaining solution quality. As long as ‘efficient’ combinations of representation structures and recombination operators are missed, unidirectional approaches seem to be more fruitful for the development of fast algorithms for scheduling purposes - despite some discouraging experien-ces made with the ‘logarithmically cooled’ simulated annealing. In the following, such a unidi-rectional approach for job shop scheduling considering the objective of makespan minimization is introduced.

2Threshold waving

2.1The algorithm

A first version of the sketched algorithm [13] has been developed by means of a comparison with a specific genetic algorithm [12]. The algorithm adopts components of the GA, avoiding the originally used binary representation structure which only serves for applicability of the standard recombination operator (crossover). The algorithm uses threshold accepting as a base search strategy very similar to simulated annealing, deviating in particular in the acceptance of new configurations: A modified configuration serves as a working basis for further search if its solution quality is better than or not more than an actual threshold worse than that one of the current configuration. Hence, in contrast to simulated annealing threshold accepting does without probabilities of acceptance and the formulation of a cooling or annealing schedule - a very critical task when applying simulated annealing [e.g. 1] - is replaced by a slightly more simple instruction of a threshold decrease. Additionally, a monotonic and linear decreasing threshold function is used and the threshold is decreased after a fixed number of trials (modifications).

In the resulting threshold accepting algorithm for makespan minimization (TAMM) solution candidates are coded as task or job sequences, entered e.g. in a matrix row by row for the in-dividual machines. An initial solution is created by randomly generating such sequences. In order to generate schedules, the task sequences serve as input for a simple heuristic schedule builder together with the given machine sequences of the jobs and the given operation times. The schedule builder tries to build up a schedule according to the proposed sequences. In cases of mutually blocking sequences (i.e. it is not possible to schedule any operation on any machine), a repair algorithm changes one of the sequences giving priority to an operation cur-rently to be processed on the selected machine while shifting as few other operations as pos-sible.

Significant improvements of the TAMM algorithm have been attained by implementing two extensions: Firstly, the modification operator, generating neighbourhood solutions by exchanging two randomly chosen elements in the operation sequence of a randomly chosen machine, is restricted to successive operations lying on a critical path of the considered sche-dule. Secondly, an operator is added performing local hill-climbing by modifying the task se-quences in a randomly chosen order. Within this operator only modifications resulting in higher solution qualities are accepted. Each sequence is modified as long as any improvement is attained. Because each modification causes a rebuilding of the schedule and, in case of im-proved quality, maybe even of the critical path, this local search operator is very expensive and therefore should be used carefully.

Some first tests of that improved version of TAMM concerned the shape of the threshold function to be used within a given runtime limit, i.e. the combination of a threshold’s start value and the number of trials permitted at each threshold level. The range of possible combi-nations is limited by the given runtime which can be translated into an overall number of trials permitted.

As a result of the considered tests, combinations of high threshold’s start values and low num-bers of trials permitted at each threshold level clearly outperformes reverse combinations. Or, alternatively spoken, compared to the ‘threshold schemes’ originally used in TAMM, the num-ber of trials needed to satisfy a given solution quality’s level can be reduced using high thresh-old’s start values and low number of trials permitted at each threshold level. Clearly, this result expresses only a tendency without claiming general validity. Nevertheless, it led to a third ex-tension of the TAMM algorithm, considering the use of the ‘released’ number of trials in a way that the solution quality is further improved: The rule of a monotonic decreasing threshold is replaced by a threshold waving down and up between an (initial high) upper level and zero with a decreasing amplitude, i.e. an upper level decreasing from ‘wave to wave’. Thus, the new algorithm is called threshold waving (TW). The TW algorithm for job shop scheduling is pre-sented in Figure 1 (for the sake of simplicity it is supposed that the initial value of thresh-old_upper_limit is positive).

2.2Parametrization

In detail, TW can be controlled by adjusting the following parameters (not all explicitly listed in Figure 1): The starting value (thresholdstart) of the threshold’s upper limit (threshold_up-per_limit) as well as the number of trials after which the threshold is reduced or raised (nor-mal_wavefactor).

Sometimes it seems to be advantageous to stretch the search of regions of slow convergence, i.e. of high solution quality levels and low threshold’s upper limits. Therefore, a parameter max_wavefactor is introduced replacing the normal wavefactor when the threshold’s upper limit falls below a value wavefactor_limit.

Considering the modification operator, the number of random operation exchanges performed each time the operator is called is bounded by the value of max_modification_factor. An exact (integer) value is, also randomly, chosen from the interval [1, max_modification_factor].

Finally, due to its high cost, the application of the local search procedure is doubly controlled: Firstly, permanent local search (i.e. follwing each single modification) is permitted only after reaching a threshold’s upper limit of local_search_limit. Secondly, a probability for the appli-cation of local search is given by the value local_search_probability, independent from the threshold or the threshold’s upper limit.

Figure 1:Threshold waving algorithm

3Computational results

Tests are performed by using two well-established data sets of Fisher and Thompson [9]: The processing of 10 jobs on 10 machines (‘10x10-problem’) as well as of 20 jobs on 5 machines (‘20x5-problem’). The optimum makespan values are 930 for 10x10-problem and 1165 for 20x5-problem, respectively. The parameter settings used for TW are listed below in Table 1. The last row indicates the number of repetitions (runs) of TW with the respective parameter setting.

The cited parameter were determined in a trial and error process trying to fit an arbitrarily fixed mean runtime value of 30 seconds for the 10x10-problem. The attained settings resulted in a mean runtime of about 45 seconds for the 20x5-problem and have then been adopted (again by trial and error) to lead to solution qualities as good as possible within the given time frame.

Tab. 1:Parametrization

Computational results are presented in Table 2 and refer to an implementation of TW written in Pascal on a Pentium-based PC (90 MHz). The distributions of the solution qualities for both problems are shown in Figure 2 and Figure 3. The values of the worst solutions obtained are 1034 for the 10x10-problem and 1282 for the 20x5-problem, respectively.

Tab. 2:Computational results

9409609709809901000101095010401030102050100

150200

250

# solutions

Fig. 2:Distribution of solution qualities for the 10x10-problem

1170119012001210122012301240118012701260125050

100

150

200

250

# solutions

300

12801290Fig. 3:

Distribution of solution qualities for the 20x5-problem

makespan

runtime [sec]

20001000

9001500

Fig. 4:Convergence of TW for the 10x10-problem

Remarks : (1) Beside the waving threshold, a very steep threshold function is the most signifi-cant characteristic of TW, appearing in only 1 to 3 trials per actual threshold using the cited parametrization. (2) Note the very short time of 2.8 seconds for detecting the optimum value of 930 for the ‘famous’ 10x10-problem. This value, even if supported by a stroke of luck, il-lustrates the strength of the convergence properties of TW (see Figure 4). (3) It should also be mentioned that the used schedule builder does not produce non-delayed or other active sche-dules (just semi-active ones). Nevertheless, comparisons to the algorithm of Giffler and Thompson [10], producing active schedules, revealed the superiority of the used algorithm,indicated by a significantly better convergence [13]. (4) A test using the parameter settings of the 20x5-problem for solving the 10x10-problem led to a mean solution quality of 966.81, a standard deviation of 14.88, and a mean runtime of 40.03 seconds. Use of parameter settings of the 10x10-problem for solving the 20x5-problem led to a mean solution quality of 1212.55,

a standard deviation of 24.70, and a mean runtime of 43.98 seconds. (5) Neglecting local search, the runtime of TW is mainly determined by the number of trials working as a factor for the runtime(s) of the algorithm(s) for building up schedules and critical paths. Let a be the nor-mal_wavefactor, n the thresholdstart,

b the max_wavefactor, and s the wavefactor_limit. The number of trials is then given by: [a×(n2+1) + (b-a)×(s2+s+1)].

4Comparison

Concluding, the presented results are compared to the results of some other authors using the same ‘problem artefacts’ of Fisher and Thompson:

?the branch&bound algorithm of Barker and McMahon [3](BM)?the branch&bound algorithm of Carlier and Pinson [4] (CP)?both shifting-bottleneck-procedures of Adams, Balas and Zawack [2](SB1, SB2)?two (hybrid) genetic algorithms of Dorndorf and Pesch [5](DP1, DP2)?the genetic algorithm of Fang, Ross and Corn [8](FRC)?the simulated annealing approach of Van Laarhoven, Aarts and Lenstra [14](SA1,...,SA4)?the TAMM algorithm [13](TAMM) Table 3 summarizes solutions qualities and runtimes obtained by the mentioned approaches, a selected parametrization of TAMM from [13] and TW. Runtimes values are rounded off, if necessary, and found optimum values as well as corresponding runtime values are marked by bold types. Because of the close relation to TW, all four parametrizations proposed in [14] are listed for the algorithm SA.

Tab. 3:Comparison of solution qualities and runtimes

Remark: It should be noted that, due to different computer systems serving as bases for imple-mentations and tests of the different approaches, no direct comparability of the stated runtime values is given. The following computer systems are indicated by the authors: BM: Cyber 171, CP: PRIME 2655, SBx: VAX 780/11, DPx: DECstation 3100, FRC: SUN-4, SAx: VAX 785, and TAMM: PC 80486 (66MHz).

5Outlook

With regard to the practical applicability, the effectiveness of an approach is just a necessary, not, however, a sufficient condition. A proof of adaptability and flexibility of TW by applying it to different real-world problems should be the next step creating a versatile algorithm as a useful tool for the development of operational systems. Due to the multitude of introduced parameters, the parametrization of TW is a problem of its own, suffering from the combinato-rial ‘explosion’ of possible parameter combinations. Thus, another requirement for further de-velopments is the implementation of an automated parameter tuning, perhaps exploiting pos-sibilities of self-adaptation.

References

[1]Aarts, E., Korst, J.: Simulated Annealing and Boltzmann Machines, A Stochastic Approach to

Combinatorial Optimization and Neural Computing, Chichester et al. 1989.

[2]Adams, J., Balas, E., Zawack, D.: The Shifting Bottleneck Procedure for Job Shop Scheduling,

Management Science 34 (1988) 3, pp. 391-401.

[3]Barker, J.R., McMahon, G.B.: Scheduling the General Job-Shop, Management Science 31 (1985)

5, pp. 594-598.

[4]Carlier, J., Pinson, E.: An algorithm for solving the job-shop problem, Management Science 35

(1989) 2, pp. 164-176.

[5]Dorndorf, U., Pesch, E.: Evolution Based Learning in a Job Shop Scheduling Environment, Re-

search Memorandum 92-019, University of Limburg, Limburg 1992.

[6]Dueck, G.: New Optimization Heuristics - The Great Deluge Algorithm and the Record-to-Record

Travel, Journal of Computational Physics (1993) 104, pp. 86-92.

[7]Dueck, G., Scheuer, T.: Threshold Accepting: A General Purpose Optimization Algorithm Supe-

rior to Simulated Annealing, Journal of Computational Physics (1990) 90, pp. 161-175.

[8]Fang, H.-L., Ross, P., Corne, D.: A Promising Genetic Algorithm to Job-Shop Scheduling, Re-

scheduling, and Open-Shop Scheduling Problems, in: Forrest, S. (ed.): Proceedings of the Fifth International Conference on Genetic Algorithms, San Mateo 1993, pp. 375-382.

[9]Fisher, H., Thompson, G.L.: Probabilistic Learning Combinations of Local Job-Shop Scheduling

Rules, in: Muth, J.F., Thompson, G.L. (eds.): Industrial Scheduling, Englewood Cliffs 1963, pp.

225-251.

[10]Giffler, B., Thompson, G.L.: Algorithms for Solving Production-Scheduling Problems, Operations

Research 8 (1960), pp. 487-503.

[11]Goldberg, D.E.: Genetic Algorithms in Search, Optimization, and Machine Learning, Reading et

al. 1989.

[12]Nakano, R., Yamada, T.: Conventional Genetic Algorithm for Job Shop Problems, in: Belew, R.,

Booker, L. (eds.): Proceedings of the Fourth International Conference on Genetic Algorithms, San Mateo 1991, pp. 474-479.

[13]Siedentopf, J.: An Efficient Scheduling Algorithm Based upon Threshold Accepting, Report No.

16 of the Institute of Production Management and Industrial Information Management, University

of Leipzig, Leipzig 1995.

[14]Van Laarhoven, P.J.M., Aarts, E.H.L., Lenstra, J.K.: Job Shop Scheduling by Simulated Annea-

ling, Operations Research 40 (1992) 1, pp. 113-125.

U NIVERSITY OF L EIPZIG

Institute of Production Management and Industrial Information Management

No.1:Zelewski, Stephan: Das Konzept technologischer Theorietransformationen - eine Analyse aus produktionswirtschaftlicher Perspektive, Leipzig 1994.

No.2:Siedentopf, Jukka: Anwendung und Beurteilung heuristischer Verbesserungsverfahren für die Maschinenbelegungsplanung - Ein exemplarischer Vergleich zwischen Neuronalen

Netzwerken, Simulated Annealing und genetischen Algorithmen, Leipzig 1994.

No.3:Zelewski, Stephan: Unternehmenskrisen und Konzepte zu ihrer Bew?ltigung, Leipzig 1994.

No.4:Siedentopf, Jukka: Ein effizienter Scheduling-Algorithmus auf Basis des Threshold Accep-ting, Leipzig 1995.

No.5:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 1: Exposition, Leipzig 1995.

No.6:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 2: Bezugsrahmen, Leipzig 1995.

No.7:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 3: Einführung in Stelle/Transition-Netze, Leipzig 1995.

No.8:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 4: Verfeinerungen von Stelle/Transition-Netzen, Leipzig 1995.

No.9:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 5: Einführung in Synthetische Netze, Teilband 5.1: Darstellung des Kern-

konzepts, Leipzig 1995.

No.10:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 5: Einführung in Synthetische Netze, Teilband 5.2: Auswertungsm?glich-

keiten, Leipzig 1995.

No.11:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 6: Erweiterungen von Synthetischen Netzen, Leipzig 1995.

No.12:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 7: Fallstudie, Leipzig 1995.

No.13:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 8: Charakterisierung des Petrinetz-Konzepts, Leipzig 1995.

No.14:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 9: Beurteilung des Petrinetz-Konzepts, Leipzig 1995.

No.15:Zelewski, Stephan: Petrinetzbasierte Modellierung komplexer Produktionssysteme (Projekt PEMOPS), Band 10: Petrinetz-Literatur, Leipzig 1995.

No.16:Siedentopf, Jukka: An Efficient Scheduling Algorithm Based upon Threshold Accepting, Leipzig 1995.

No.17:Siedentopf, Jukka: The Threshold Waving Algorithm for Job Shop Scheduling, Leipzig 1995.

excel 中INDEX和MATCH函数嵌套应用

INDEX和MATCH函数嵌套应用 主讲老师:简单老师 第一部分:INDEX和MATCH函数用法介绍 第一,MATCH函数用法介绍 MATCH函数也是一个查找函数。MATCH 函数会返回匹配值的位置而不是匹配值本身。在使用时,MATCH函数在众多的数字中只查找第一次出现的,后来出现的它返回的也是第一次出现的位置。 MATCH函数语法:MATCH(查找值,查找区域,查找模式) 可以通过下图来认识MATCH函数的用法: =MATCH(41,B2:B5,0),得到结果为4,返回数据区域B2:B5 中41 的位置。 =MATCH(39,B2:B5,1),得到结果为2,由于此处无正确匹配,所以返回数据区域B2: B5 中(38) 的位置。注:匹配的查找值,MATCH 函数会查找小于或等于(39)的最大值。 =MATCH(40,B2:B5,-1),得到结果为#N/A,由于数据区域B2:B5 不是按降序排列,所以返回错误值。 第二,INDEX函数用法介绍 INDEX函数的功能就是返回指定单元格区域或数组常量。如果同时使用参数行号和列号,函数INDEX返回行号和列号交叉处的单元格中的值。

INDEX函数语法:INDEX(单元格区域,行号,列号) 可以通过下图来认识INDEX函数的用法: =INDEX(A1:C6,2,3),意思就是返回A1:C6中行号是2 列号是3 ,即第二行与第三列的交叉处,也就是C2单元格的值,为84。 第二部分:INDEX和MATCH函数应用案例介绍 下图工作表所示的是一个产品的型号和规格的价格明细表。通过这个表的数据,进行一些对应的查询操作。

第一,单击B5单元格下拉按钮,选择型号,然后在B6单元格完成型号所在行号的查询。如下图所示: 随意选择一个型号,比如A0110,然后在B6单元格输入公式:=MATCH($B$5,$D$4: $D$12,0),得到结果1。 公式解释:用MATCH函数查找B5单元格这个型号在D4:D12区域中对应的位置。其中的0参数可以省略不写。MATCH函数中0代表精确查找,1是模糊查找。 第二,单击B9单元格下拉按钮,选择规格,然后在B10单元格完成规格所在列号的查询。如下图所示: 随意选择一个规格,比如101,然后在B10单元格输入公式:=MATCH(B9,E3:G3,0),得到结果1。 第三,查询B6和B10单元格所对应的价格。 价格的查询,可以使用index函数完成,输入公式:=INDEX(E4:G12,B6,B10)可以得到结果为78。嵌套上面的match函数,可以将公式改为:=INDEX(E4:G12,MATCH(B5,D4: D12,0),MATCH(B9,E3:G3,0))。大家可以变化C3中的型号来看看结果是否正确。 通过下面工作表的源数据,利用index函数实现行列汇总查询。

什么是HTML文件

什么是HTML文件? ?HTML的英文全称是Hypertext Marked Language,中文叫做“超文本标记语言”。 ?和一般文本的不同的是,一个HTML文件不仅包含文本内容,还包含一些Tag,中文称“标记”。 ?一个HTML文件的后缀名是.htm或者是.html。 ?用文本编辑器就可以编写HTML文件。 ?这就试写一个HTML文件吧! ?打开你的Notepad,新建一个文件,然后拷贝以下代码到这个新文件,然后将这个文件存成first.html。 Title of page This is my first homepage. This text is bold 要浏览这个first.html文件,双击它。或者打开浏览器,在File菜单选择Ope n,然后选择这个文件就行了。 示例解释 这个文件的第一个Tag是,这个Tag告诉你的浏览器这是HTML文件的头。文件的最后一个Tag是,表示HTML文件到此结束。 在和之间的内容,是Head信息。Head信息是不显示出来的,你在浏览器里看不到。但是这并不表示这些信息没有用处。比如你可以在Head信息里加上一些关键词,有助于搜索引擎能够搜索到你的网页。 在之间的内容,是这个文件的标题。你可以在浏览器最顶端的标题栏看到这个标题。 在和之间的信息,是正文。 在之间的文字,用粗体表示。顾名思义,就是bold的意思。HTML文件看上去和一般文本类似,但是它比一般文本多了Tag,比如,等,通过这些Tag,可以告诉浏览器如何显示这个文件。 HTML元素(HTML Elements) ?HTML元素(HTML Element)用来标记文本,表示文本的内容。比如body, p, title就是HTML元素。 ?HTML元素用Tag表示,Tag以<开始,以>结束。

INDEX索引函数语法

名师整理优秀资源 1、index语法 index(区域,第几行,第几列) 返回区域第几行第几列的数值。 参数还是很好理解的。 注意的就是:如果区域为同一行,可以省略第二个参数;同样如果区域为同一列,可以省略第三个参数。 下面看实例: 讲解一下。我们挑INDEX(A1:C6,2,2)单元格,所以公B2行、第2列的值,交叉点即2C6A1意思是返回:这个区域第。姓名式结果是 名师整理优秀资源

一列嘛。/单列区域只需要两个参数就行了,因为只有一行/单行 ;INDEX(B2:B6,2)也就是返回第二行的张三。也就是返回第列列的成绩INDEX(B2:C2,2) 和match配合、2index 函数配合,常用来查询。matchindex函数和index来查询,现在展示vlookup查询张三的成绩。比如下面的例子,我们可以使用和match的配合。 INDEX(C2:C6,MATCH(E2,B2:B6,0)) 名师整理优秀资源 现在分析一下,在函数组合的文章中,我们讲到了函数组合的剖析要从内到外。2。B2在:B6的位置,是先看内部的MATCH(E2,B2:B6,0),是返回张三了。,就是 30INDEX(C2:C6,2)MATCH(E2,B2:B6,0)那么把替换成2再看:这么复杂的组合有matchindex 肯定有同学会说:我已经会了vlookup,再学和个卵用?其实作用还是很大的,看下面的例子:

根据蓝色区域的信息,查询张三和王五的成绩、性别、班级。. 名师整理优秀资源 如果用vlookup,公式如下: 3个公式才可以。成绩、性别、班级需要手动编辑match配合,一个公式就可以搞定了。如果用index和B8的公式: INDEX($A$1:$D$5,MATCH($A8,$A$1:$A$5,0),MATCH(B$7,$A$1:$D$1,0)) 公式很复杂,我们讲解一下:这个区域被锁定了,公式怎么拖动都不会改变。1、$A$1:$D$5表中的位置。$A8张三在$A$1:$A$5MATCH($A8,$A$1:$A$5,0)2、,是返回。。。、示公式向右拖动不变,向下拖动还是正常的$A9$A10表B$7$A$1:$D$1成绩在中的位置。 MATCH(B$7,$A$1:$D$1,0)3、,是返回。B$7,向下拖动被锁定了一直时D$7、C$7示公式向

html网页编写实例

1、题目:按照题目中所给出的网页截图及说明,写出相同的页面效果。页面包含如下:index.html、footer.html、header.html、insurance.html、rates.html、redbank.html、welcome.html。 主干代码: Index: ITSO Bank

ITSORedBank

Excel中index和match函数的应用实例

Excel中index和match函数的应用实例 原文出处https://www.wendangku.net/doc/0d4909768.html,/50281/400990 查询函数一直是Excel中常被用到的一种函数,本篇来介绍一下index与match在实际工作中的应用实例。先看一下这个Excel工作簿。要求:将“用户分析”工作表中机房名称列中输入函数,向下拖动使其自动选择对应“号段检索”工作表中备注的机房名称。

其中故障号码为“号段检索”表中起始、结束号段中的码号。因此这里需要利用index 与match函数来完成检索号段归属机房查询工作。 想到了index与match函数了吧,可以先回顾一下。 -------------------------------------INDEX------------------------------------ index函数的意义:返回指定行列交叉处引用的单元格。 公式:=index(reference,row_num,column_num,area_num) reference指的是要检索的范围; row_num指的是指定返回的行序号,如超出指定检索范围,返回错误值#REF!; column_num指的是指定返回的列序号,如超出指定检索范围,返回错误值#REF!; area_num指的是返回该区域中行和列的交叉域。可省略,默认1。如小于1时返回错误值#VALUE! -------------------------------------MATCH------------------------------------ match函数的意义:返回指定方式下查找指定查找值(可以是数字、文本或逻辑值)在查找范围1行或1列的位置。 公式:=match(lookup_value,lookup_array,match_type) lookup_value指指定查找值; lookup_array指的是1行或1列的被查找连续单元格区域。 match_type指的是查找方式,1或省略指查找小于或等于lookup_value的最大值,lookup_array必须为升序排列,否则无法得到正确结果。 0指查找等于lookup_value的第一个数值,如果不是第一个数值则返回#N/A -1指查找大于或等于lookup_value的最小值,lookup_array必须为降序,否则无法得到正确结果。 ------------------------------------------------------------------------------- 那么在这里是用match函数来定位“用户分析”表中故障号码在“号段检索”起始号段或结束号段的所在行序号。 如下图:=MATCH(用户分析!K2,号段检索!B:B,1)。但是为什么检索出来的行号会是错误值呢?

index函数语法说明及应用实例

index函数语法说明及应用实例 INDEX函数INDEX函数是返回表或区域中的值或对值的引用。函数INDEX ()有两种形式:数组形式和引用形式。数组形式通常返回数值或数值数组;引用形式通常返回引用。 返回特定行和列交叉处单元格的引用。如果该引用是由非连续选定区域组成的,则可以选择要用作查找范围的选定区域。 函数语法语法:INDEX(array,row_num,column_num)返回数组中指定的单元格或单元格数组的数值。INDEX(reference,row_num,column_num,area_num)返回引用中指定单元格或单元格区域的引用。 参数:Array为单元格区域或数组常数;Row_num为数组中某行的行序号,函数从该行返回数值。如果省略row_num,则必须有column_num;Column_num是数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有row_num。Reference是对一个或多个单元格区域的引用,如果为引用输入一个不连续的选定区域,必须用括号括起来。Area_num是选择引用中的一个区域,并返回该区域中row_num和column_num的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,则INDEX函数使用区域1 实例:如果A1=68、A2=96、A3=90,则公式=INDEX(A1:A3,1,1)返回68。 INDEX函数返回一个值或者对某个值的引用。与其他函数如MATCH函数联合使用,可以构造强大的公式。 什么情况下使用INDEX函数?INDEX函数可以返回一个值或者对某值的引用,因此可以使用该函数来:查找所选月份的销量;获取对指定行、列、区域的引用;基于给定数目创建动态区域;以字母顺序排序文本列。 INDEX函数的语法 INDEX函数有两种语法形式数组和引用。使用数组形式,返回值;使用引用形式,返回引

html代码练习题

1.(多选)网站首页默认的文件名一般有()。 A.index.htm B.index.html C.index.asp D.default.htm 2.下列关于HTML语言的描述不正确的是()。 A.HTML文档是文本格式的文件 B.HTML代码中可以嵌入多种网页特效代码 C.不懂HTML语言的人无法制作网站 D.HTML语言是通过一系列特定的标记来标识出相应的意义和作用的 3.为了标识一个HTML 文件,应该使用的标签是()。 A. B. C. D. 4.在HTML语言中,表格中行的开始和结束的标签是()。 A. B.C. D.

5.超文本标记语言“央视国际”的作用是()。A.创建一个指向央视国际网站的超链接 B.创建一个指向央视国际网站的电子邮件 C.插入一幅央视国际网站的图片 D.插入一段央视国际网站的文字 6.在HTML语言中,头元素的的标记是()。 A. B. C.D. 7. 在网页中添加一个图片的HTML代码是()。 A. B. C. D.图片 8.绚丽多彩的网页是靠HTML语言来实现的,HTML语言是()。 A.大型数据库B.一种编程语言C.超文本标记语言D.网络通信协议 9.HTML语言中,表格标记符是()。 A.</head> B.</html> C.</table>D.</form> 10.为了标识一个格式文件是HTML格式,应使用的标记是()。 A. B. C. D.
11.下列关于HTML语言描述不正确的是()。 A、HTML语言中可以嵌入如ASP、JA V A等编程语言 B、FRONTPAGE是制作网页的软件,它和HTML无关 C、HTML语言是通过一系列特定的标记来标识出相应的意义和作用的 D、HTML文档本身就是文本格式的文件

MIB2节点描述

组描述 System 提供运行代理的设备或系统的全部信息Interfaces 包含关于系统中操作网络接口的信息 At 用于InternetIP地址到数据链路地址的地址 转换表。注意这是一个被反对的组 Ip 包含关于该设备的网际协议(IP)的统计信息Icmp 包含关于该设备的Internet控制消息协议 (ICMP)的统计信息 Tcp 包含关于该设备的传输控制协议(TCP)的统计 信息 Udp 包含关于该设备的用户数据报协议(UDP)的统 计信息 Egp 包含关于该设备的外部网关协议(EGP)的统计 信息 dot3 提供每个网络接口关于传输和访问协议的信息Snmp 包含关于该设备的简单网络管理协议(SNMP) 的统计信息 系统组:system组包含以下对象集(.1.3.6.1.2.1.1): 对象名:sysDescr(1) OID:system.1 对象类型:DisplayString[255] 访问模式:只读 描述:关于该设备或实体的描述,如设备类型、硬件特性、操作系统信息等

对象名:sysObjectID OID:system.2 对象类型:ObjectIdentifier 访问模式:只读 描述:设备厂商的授权标识符 对象名:sysUpTime(1) OID:system.3 对象类型:TimeTick 访问模式:只读 描述:从系统(代理)的网络管理部分最后一次重新初始化以来,经过的时间量 对象名:sysContact(1) OID:system.4 对象类型:DisplayString[255] 访问模式:读写 描述:记录其他提供该设备支持的机构和(或)联系人的信息 对象名:sysName(1) OID:system.5 对象类型:DisplayString[255] 访问模式:读写

excel中INDEX函数如何使用

excel中INDEX函数如何使用 INDEX用于返回表格或区域中的数值或对数值的引用。 函数INDEX() 有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。 (1)INDEX(array,row_num,column_num) 返回数组中指定单元格或单元格数组的数值。Array为单元格区域或数组常数。Row_num为数组中某行的行序号,函数从该行返回数值。Column_num为数组中某列的列序号,函数从该列返回数值。需注意的是Row_num 和column_num 必须指向array 中的某一单元格,否则,函数INDEX 返回错误值#REF!。(2)INDEX(reference,row_num,column_num,area_num) 返回引用中指定单元格或单元格区域的引用。 Reference为对一个或多个单元格区域的引用。 Row_num为引用中某行的行序号,函数从该行返回一个引用。 Column_num为引用中某列的列序号,函数从该列返回一个引用。 需注意的是Row_num、column_num 和area_num 必须指向reference 中的单元格;否则,函数INDEX 返回错误值#REF!。如果省略row_num 和column_num,函数INDEX 返回由area_num 所指定的区域。 1. INDEX函数的用途是返回列表或数组中的指定值。 公式:INDEX(ARRAY,ROW-NUM,CLUMN-NUM) 例:返回A1:C10区域,第五行,第二列的值! =INDEX(A1:C10,5,2) 2. INDEX数组函数:返回多个条件下指定的数值. 例:显示条件为D2:D13=D4、并且F2:F13=F4情况下,E列中对应的值什么? ={INDEX(A1:F13,SUM(IF((D2:D13=D4)*(F2:F13=F4),ROW(E2:E13))),COLUMN(E2))} 或={INDEX(A1:F13,SMALL(IF((D2:D13=D4)*(F2:F13=F4),ROW(E2:E13))),COLUMN(E2))} 公式输入完成后,同时按下CTRL+SHIFT+ENTER,公式会自动出现大括号,表明使用数组函数。 3、INDEX函数与MATCH函数联用: 3.1MATCH函数是返回在指定方式下与指定数值匹配的数组中元素的相应位置。 公式:MATCH(LOOKUP_VALUE,LOOKUP_ARRAY,MA TCH_TYPE) LOOKUP_VALUE为在数据表中查找的数值 LOOKUP_ARRAY为包括要查找的连续单元格区域 MATCH-TYPE为数字1,0,-1 1表示查找小于或等于LOOKUP_value的最大值,区域需升序排列 -1表示查找大于或等于LOOKUP_VALUE的最小值,区域需降序排列 0表示查找等于LOOKUP_VALUE的第一个值,不需排列 例: A B C 1 吉林长久66666 双桥双胎 2 吉林安顺99999 单桥双胎 求:66666在B列的第几行? =MATCH("66666",B1:B2,0)返回“1”。 求“66666”对应的公司是什么? =INDEX(A:A,MATCH("66666",B1:B2,0),column(A1)) 公式输入后同时按下CTRL+SHIFT+ENTER 返回“吉林长久”。

最新html学习心得

html学习心得 第1篇第2篇第3篇第4篇第5篇更多顶部 目录 第一篇:html学习笔记小结2 第二篇:js、php、mysql和html学习经验总结 第三篇:html(即超文本标记语言) 的学习总结 第四篇:学习asp获取html表单提交信息的实例 第五篇:html标签总结 更多相关范文 正文 第一篇:html学习笔记小结2 4.3trthtd标签下的常用属性 属性名称属性值说明iddle数据居中buttombgcolor 4.4拆分与合并单元格 td里面的属性

属性名称属性值colspan数字ro 5.1背景图片设置 body background=url 5.2将图片插入网页中 格式:img src=url 功能:将图片插入网页中单一标签 属性名称属性值srcurliddlebuttom间隙设置 数据靠下说明 向两边扩展向上下扩展说明 图片的路径 图片的宽度(绝对和相对) 图片的高度(绝对和相对)给图片做注解图片边框说明 图像靠左文字靠右图像靠右文字靠左文字靠上文字居中

文字靠下 vspace像素垂直上下两端与物件的距离hspace像素水平左右两端与物件的距离 5.4 图片超链接 a href=urlimg src=url/a 注意边框问题 5.5地图索引 格式:img src=url usemap=#图像名称 map name=图片名称 id=图片名称 area shape=选取区块的形状 coords=坐标 href=url alt=文字说明/map 说明:

map声明整张图使用地图连接方式进行连接 area表示需要连接的某个区块 shape表示我们所选择的形状如:rect矩形 circle圆形poly 多边形coords 表示地图的坐标位置 举例: img src=bg.jpg border=0 usemap=#map map name=map area shape=rect coords=136,36,202,102 href=网易/a 2.file连接本地的文件 声明a href=file:///e/images/pic.jpg图片/a 3.ftp 声明a href=ftp://192.168.4.21/进入/a

INDEX函数

INDEX函数(有数组和引用两种用法。) 贡献者:843211日期:2008-07-22 阅读:14577 相关标签:et2007> 公式> 函数> 函数类型> 查找与引用函数> INDEX 返回表或区域中的值或值的引用。函数INDEX()有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。 INDEX(array,Row_num,column_num) 返回数组中指定单元格或单元格数组的数值。INDEX(reference,Row_num,column_num,area_num) 返回引用中指定单元格区域的引用。语法1(数组) 语法1(数组) 贡献者:wendy日期:2009-03-17 阅读:5269 相关标签:et2007> 公式> 函数> 函数类型> 查找与引用函数> INDEX1 返回数据清单或数组中的元素值,此元素由行序号和列序号的索引值给定。 语法 INDEX(array,Row_num,column_num) Array 为单元格区域或数组常量。 ?如果数组只包含一行或一列,则相对应的参数Row_num 或column_num 为可选。 ?如果数组有多行和多列,但只使用Row_num 或column_num,函数INDEX 返回数组中的整行或整列,且返回值也为数组。 Row_num 数组中某行的行序号,函数从该行返回数值。如果省略Row_num,则必须有column_num。 Column_num 数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有Row_num。 说明

?如果同时使用Row_num 和column_num,函数INDEX 返回Row_num 和column_num 交叉处的单元格的数值。 ?如果将Row_num 或column_num 设置为0,函数INDEX 则分别返回整个列或行的数组数值。若要使用以数组形式返回的值,请将INDEX 函数以数组公式(数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号({ }) 中。按Ctrl+Shift+Enter 可以输入数组公式。)形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按Ctrl+Shift+Enter。 ? Row_num 和column_num 必须指向array 中的某一单元格;否则,函数INDEX 返回错误值#REF!。 示例 如果您将示例复制到空白工作表中,可能会更易于理解该示例。 示例一: A B 1 数据数据 2 苹果柠檬 3 香蕉梨 公式说明(结果) =INDEX(A2:B3,2,2) 返回单元格区域的第二行和第二列交叉处的值(梨) =INDEX(A2:B3,2,1) 返回单元格区域的第二行和第一列交叉处的值(香蕉) 示例二: A B 1公式说明(结果) 2=INDEX({1,2;3,4},1,2) 返回数组常量中第一行、第二列的值(2) 提示 示例中的公式必须以数组公式的形式输入。在将示例复制到空白工作表中后,请选中以公式单元格开始的单元格区域A2:A3,按F2,再按Ctrl+Shift+Enter。如果公式不是以数组公

index函数

index函数编辑词条 INDEX函数是返回表或区域中的值或对值的引用。函数INDEX()有两种形式:数组形式和引用形式。数组形式通常返回数值或数值数组;引用形式通常返回引用。 基本信息 ?外文名称 INDEX函数 ?参数 Array为单元格区域或数组常数 ?形式 数组形式和引用形式 ?应用领域 计算机 ?引用 返回表或区域中的值或对值 目录1函数语法 2数组形式 3引用形式 4说明 5示例 1 函数语法 2 数组形式 3 引用形式 4 说明 5 示例 回到顶部意见反馈 QQ空间新浪微博腾讯微博百度贴吧人人豆瓣 函数语法折叠编辑本段 语法:INDEX(array,row_num,column_num)返回数组中指定的单元格或单元格数组的数值。INDEX(reference,row_num,column_num,area_num)返回引用中指定单元格或单元格区域的引用。

参数:Array为单元格区域或数组常数;Row_num为数组中某行的行序号,函数从该行返回数值。如果省略row_num,则必须有column_num;Column_num是数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有row_num。Reference是对一个或多个单元格区域的引用,如果为引用输入一个不连续的选定区域,必须用括号括起来。Area_num是选择引用中的一个区域,并返回该区域中row_num和column_num的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,则INDEX函数使用区域1 实例:如果A1=68、A2=96、A3=90,则公式"=INDEX(A1:A3,1,1)"返回68。数组形式折叠编辑本段 返回由行和列编号索引选定的表或数组中的元素值。如果 INDEX 的第一个参数是数组常量,请使用数组形式。 INDEX(array,row_num,column_num) Array是一个单元格区域或数组常量。 · 如果数组中只包含一行或一列,则可以不使用相应的 row_num 或 column_num 参数。 · 如果数组中包含多个行和列,但只使用了 row_num 或 column_num,INDEX 将返回数组中整行或整列的数组。 Row_num用于选择要从中返回值的数组中的行。如果省略 row_num,则需要使用column_num。 Column_num用于选择要从中返回值的数组中的列。如果省略 column_num,则需要使用 row_num。 说明 1、如果同时使用了 row_num 和 column_num 参数,INDEX 将返回 row_num 和column_num 交叉处单元格中的值。 2、如果将 row_num 或 column_num 设置为 0(零),INDEX 将分别返回整列或整行的值数组。要将返回的值用作数组,请在行的水平单元格区域和列的垂直单元格区域以数组公式 (数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号({ }) 中。按 Ctrl+Shift+Enter 可以输入数组公式。)的形式输入 INDEX 函数。要输入数组公式,请按 Ctrl+Shift+Enter。 3、Row_num 和 column_num 必须指向数组中的某个单元格;否则,INDEX 将返回#REF! 错误值

HTML相对路径和绝对路径

HTML相对路径和绝对路径 核心提示:HTML初学者会经常遇到这样一个问题,如何正确引用一个文件。比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个网页中插入一张图片? HTML初学者会经常遇到这样一个问题,如何正确引用一个文件。比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个网页中插入一张图片? 如果你在引用文件时(如加入超链接,或者插入图片等),使用了错误的文件路径,就会导致引用失效(无法浏览链接文件,或无法显示插入的图片等)。 为了避免这些错误,正确地引用文件,我们需要学习一下HTML路径。 HTML有2种路径的写法:相对路径和绝对路径。 HTML相对路径(Relative Path) 同一个目录的文件引用 如果源文件和引用文件在同一个目录里,直接写引用文件名即可。 我们现在建一个源文件info.html,在info.html里要引用index.html文件作为超链接。 假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html 假设index.html路径是:c:\Inetpub\wwwroot\sites\blabla\index.html 在info.html加入index.html超链接的代码应该这样写: index.html 如何表示上级目录 ../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。 假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html 假设index.html路径是:c:\Inetpub\wwwroot\sites\index.html 在info.html加入index.html超链接的代码应该这样写: index.html 假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info.html 假设index.html路径是:c:\Inetpub\wwwroot\index.html 在info.html加入index.html超链接的代码应该这样写: index.html

INDEX函数

INDEX函数 函数INDEX()有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。 语法:INDEX(array,row_num,column_num)返回数组中指定的单元格或单元格数组的数值。INDEX(reference,row_num,column_num,area_num)返回引用中指定单元格或单元格区域的引用。 参数:Array为单元格区域或数组常数;Row_num为数组中某行的行序号,函数从该行返回数值。如果省略row_num,则必须有column_num;Column_num是数组中某列的列序号,函数从该列返回数值。如果省略column_num,则必须有row_num。Reference是对一个或多个单元格区域的引用,如果为引用输入一个不连续的选定区域,必须用括号括起来。 Area_num是选择引用中的一个区域,并返回该区域中row_num和 column_num的交叉区域。选中或输入的第一个区域序号为1,第二个为2,以此类推。如果省略area_num,则INDEX函数使用区域1 实例:如果A1=68、A2=96、A3=90,则公式“=INDEX(A1:A3,1,1)”返回68。 --------------------------------------------------------------------------------------------------------------------- INDEX 函数 返回表或区域中的值或对值的引用。INDEX 函数有两种形式:数组形式和引用形式。 一、数组形式 返回由行和列编号索引选定的表或数组中的元素值。如果INDEX 的第一个参数是数组常量,请使用数组形式。 INDEX(array,row_num,column_num) Array 是一个单元格区域或数组常量。 · 如果数组中只包含一行或一列,则可以不使用相应的 row_num 或column_num 参数。 · 如果数组中包含多个行和列,但只使用了row_num 或 column_num,INDEX 将返回数组中整行或整列的数组。 Row_num用于选择要从中返回值的数组中的行。如果省略row_num,则需要使用column_num。 Column_num用于选择要从中返回值的数组中的列。如果省略 column_num,则需要使用 row_num。 说明

常用html标记总结

一、HTML的全局架构标签 我是标题 我是正文 二、body标签中的相关属性 1、bgcolor: 网页正文部分的背景色 2、text: 网页正文部分的文字的颜色 3、link: 超链接的颜色 4、alink:鼠标按下超级链接时候文本的颜色 5、vlink:被访问过的超级链接的颜色 6、leftmargin:左缩进的长度,单位是像素 7、topmargin:上缩进的长度,单位是像素 8、background:背景图片,如果图片足够的大,它将盖住背景颜色bgcolor 所有的颜色设置部分都可以用三对十六进制的数来表示,前面加# 三、注释 四、特殊符号 左尖括号 < 右尖括号 > 与符号 & 注册商标 ® 版权 © ( © ) ™ 双引号 " 空格   五、格式标签 1、

 把包围起来的内容按原格式显示在浏览器上 2、 换行并加入一个空行 3、
换行不产生空行 4、
缩进 5、
居中显示 6、 七、超链接 ... https://www.wendangku.net/doc/0d4909768.html,:80/index.html 协议名 192.168.1.1 端口号资源名 八、图像标签 alt 提示语 align 对齐方式 border 边框粗细

index函数和match函数

MATCH函数有两方面的功能,两种操作都返回一个位置值。 一是确定区域中的一个值在一列中的准确位置,这种精确的查询与列表是否排序无关。 二是确定一个给定值位于已排序列表中的位置,这不需要准确的匹配. 语法结构为:MATCH(lookup_value,lookup_array,match_type) lookup_value为要搜索的值。 lookup_array:要查找的区域(必须是一行或一列)。 match_type:匹配形式,有0、1和-1三种选择:"0"表示一个准确的搜索。"1"表示搜索小于或等于查换值的最大值,查找区域必须为升序排列。"-1"表示搜索大于或等于查找值的最小值,查找区域必须降序排开。以上的搜索,如果没有匹配值,则返回#N/A。 比如:有一列数据:A1:A7 分别时A B C D E F G ,C1的值为F 这个时候D1输入=match(c1,a1:a7,0) 返回值就是6("F"在A1:A7中的行号) 这是基本的原理 经常和INDEX()函数一起使用! 比如:和上表一样,B1:B7为10 20 30 40 50 60 70 =index(B1:B7,MATCH(C1,A1:A7,0),0)就能返回“F”对应的B列的值60 INDEX可以实现反向查找,比VLOOKUP用法更加灵活 INDEX用于返回表格或区域中的数值或对数值的引用。 函数INDEX() 有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。 (1)INDEX(array,row_num,column_num) 返回数组中指定单元格或单元格数组的数值。Array为单元格区域或数组常数。Row_num为数组中某行的行序号,函数从该行返回数值。Column_num为数组中某列的列序号,函数从该列返回数值。需注意的是Row_num 和column_num 必须指向array 中的某一单元格,否则,函数INDEX 返回错误值#REF!。(2)INDEX(reference,row_num,column_num,area_num) 返回引用中指定单元格或单元格区

HTML相对路径(Relative Path)和绝对路径(Absolute Path)深入理解

web应用程序功能强大就在于它的超链接(Hyper Link),比如在a页面保存指向b页面的链接地址(也就是URI),但问题就恰恰出在了这里,如何正确引用一个文件。比如,怎样在一个HTML网页中引用另外一个HTML网页作为超链接(hyperlink) 搞java web开发也有1年多了,免不了要写写html或者jsp页面什么的,而web应用程序功能强大就在于它的超链接(Hyper Link),比如在a页面保存指向b页面的链接地址(也就是URI),但问题就恰恰出在了这里,如何正确引用一个文件。比如,怎样在一个HTML 网页中引用另外一个HTML网页作为超链接(hyperlink)?怎样在一个网页中插入一张图片?...... 加上struts中相对路径也是大行其道,一不小心很容易搞混淆。 如果在引用文件时(如加入超链接,或者插入图片等),使用了错误的文件路径,就会导致引用失效(无法浏览链接文件,或无法显示插入的图片等)。 为了避免这些错误,正确地引用文件,特地写下来而者的区别与用法,将来也可查询。 HTML有2种路径的写法:相对路径和绝对路径 HTML相对路径(relative path) 同一个目录的文件引用 如果源文件和引用文件在同一个目录里,直接写引用文件名即可。 我们现在建一个源文件info.HTML,在info.HTML里要引用index.HTML文件作为超链接。 假设info.HTML路径是:d:\tomcat\webapps\hello\blabla\info.HTML 假设index.HTML路径是:d:\tomcat\webapps\hello\blabla\index.HTML 在info.HTML加入index.HTML超链接的代码应该这样写: 代码如下: <a href = "index.HTML">index.HTML</a> 如何表示上级目录 ../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。 假设info.HTML路径是:d:\tomcat\webapps\hello\blabla\info.HTML 假设index.HTML路径是:d:\tomcat\webapps\hello\index.HTML 在info.HTML加入index.HTML超链接的代码应该这样写: 代码如下: <a href = "../index.HTML">index.HTML</a> 假设info.HTML路径是:d:\tomcat\webapps\hello\blabla\wowstory\info.HTML 假设index.HTML路径是:d:\tomcat\webapps\hello\index.HTML 在info.HTML加入index.HTML超链接的代码应该这样写: 代码如下: <a href = "../../index.HTML">index.HTML</a> 假设info.HTML路径是:d:\tomcat\webapps\hello\blabla\info.HTML 假设index.HTML路径是:d:\tomcat\webapps\hello\wowstory\index.HTML 在info.HTML加入index.HTML超链接的代码应该这样写: 代码如下: <a href = "../wowstory/index.HTML">index.HTML</a> 如何表示下级目录