Power Query删除重复的子串

时间:2018-05-28 15:17:52

标签: powerquery

我在Power Query中有一个专栏(使用Excel进行独立电源查询),文本如下

  

“榛子浆果坚果覆盆子”

我需要能够识别其中是否有超过1个“坚果”(“浆果”)实例并删除通用词,以便得到结果

  

“榛子覆盆子”

我看过this post,但它重复了整个单词。

2 个答案:

答案 0 :(得分:1)

我不完全确定您搜索要删除的单词的标准(PQ在如何使用内置函数对其进行评估方面相当有限)。这将查看该字符串并删除任何以“Nut”或“Berr”开头的单词。

public void listener() {
        scanner.scannerListener = new ScannerListener() {
            @Override
        public void listener() {
           sChecker = mEntryText.getText().toString();

            if (sChecker.equals("")) ;
            {
                mScan = scanner.getScanResult();
                Timber.d("The barcode is " + mScan);
                if (!mScan.equals("")) {

                    int lmScan = mScan.length();
                    if (lmScan > 15) {
                        checkGs1Barcode();
                    }
                    String s = DatabaseMgr.VerifyItem(mScan);
                    if (s.length() > 1) {
                        if (s.equalsIgnoreCase("Unknown Item###")) {
                            Toast.makeText(getApplicationContext(), "Unknown Item", Toast.LENGTH_SHORT).show();
                        } else if (s.equalsIgnoreCase("Multiple Items###")) {
                            setupMultiItems(mScan);
                        } else {
                            String[] sArr = s.split("\\#");
                            String IsItem = sArr[0];
                            String IsItemDesc = sArr[1];
                            String isLevel = sArr[2];
                            String isLvlDesc = sArr[3];
                            Button ItemDescText = findViewById(R.id.btnDesc);
                            ItemDescText.setText(IsItemDesc);
                            TextView ItemUPCText = findViewById(R.id.editUPC);
                            ItemUPCText.setText(mScan);

                            Integer iQTY = ValidateQTYinArea(IsItem, "RTN", myArea, isLevel);
                            TextView mQty = findViewById(R.id.txtDetail);
                            String myResult = "RTN - " + myArea + " - " + isLvlDesc + " - " + iQTY;
                            mQty.setText(myResult);
                            mEntryText.setBackgroundColor(getResources().getColor(R.color.colorWhite));

                            mLoc.setBackgroundColor(getResources().getColor(R.color.colorYellow));
                            mLoc.requestFocus();
                        }
                    }
                } else {
                    mLoc.setText(scanner.getScanResult());
                }

            }

        }
    };
}

哪个会得到你想要的输出。不知道你是否需要更详细的评估每个单词的标准,但这可能需要一个自定义函数。

答案 1 :(得分:0)

List.Distinct:https://docs.microsoft.com/en-ie/powerquery-m/list-distinct应该这样做;像这样:List.Distinct(Text.Split(“榛子浆果坚果覆盆子”,“”))

如果您的列表可能包含多个空格或其他“内容”,则可能需要更多的信息