Excel:在查找范围内使用通配符

时间:2018-06-06 22:24:18

标签: excel

我在A,C和D列中有值。

A列中的每个单元格与C列中的单元格完全匹配,或者是部分匹配(A列中的值包含更多字符)。例如:

A                B              C              D

Park value                      Sprint         Type1
Sprint teller                   Call B         Type3
Call centre                     Call A         Type3
Call A centre                   Call centre    Type3
Call B centre                   Park           Type2

我想用匹配的Type(来自D列)填充B列。这就是我想要的结果:

A                B              C              D

Park value       Type2          Sprint         Type1
Sprint teller    Type1          Call B         Type3
Call centre      Type3          Call A         Type3
Call A centre    Type3          Call centre    Type3
Call B centre    Type3          Park           Type2

如何在Excel中执行此操作?

1 个答案:

答案 0 :(得分:2)

此备选方案需要=INDEX($A$2:$A$6, MATCH($C2 & "*", $A$2:$A$6, 0)) 中的辅助列:

B2

然后在=INDEX($D$2:$D$6, MATCH($A2, $E$2:$E$6, 0))

=INDEX([A], MATCH([@C] & "*", [A], 0))

可以在没有带数组公式的辅助列的情况下完成。

如果范围格式化为表格(“插入”标签 - >“表格”),则可以使用structured references代替:

=INDEX([D], MATCH([@A], [E], 0))

module Main (main) where

import Criterion.Main
import System.Random
import Control.Monad

import qualified Data.List
import qualified Data.Sequence

int :: Int -> IO Int
int n = randomRIO (0,n)

benchAtSize :: Int -> Benchmark
benchAtSize n =
    env (replicateM n (int n)) $
    \xs ->
         bgroup (show n)
           [ bench "Data.List"     $ nf Data.List.sort xs
           , bench "Data.Sequence" $ nf (Data.Sequence.sort . Data.Sequence.fromList) xs
           ]

main :: IO ()
main = defaultMain (map benchAtSize [100, 1000, 10000])