ਇੱਕ ਟੇਬਲ ਨੂੰ ਸ਼ੀਟਾਂ ਵਿੱਚ ਵੰਡਣਾ

ਮਾਈਕਰੋਸਾਫਟ ਐਕਸਲ ਕੋਲ ਕਈ ਟੇਬਲਾਂ (ਵੱਖ-ਵੱਖ ਸ਼ੀਟਾਂ ਜਾਂ ਵੱਖ-ਵੱਖ ਫਾਈਲਾਂ ਤੋਂ) ਤੋਂ ਡਾਟਾ ਇਕੱਠਾ ਕਰਨ ਲਈ ਬਹੁਤ ਸਾਰੇ ਟੂਲ ਹਨ: ਸਿੱਧੇ ਲਿੰਕ, ਫੰਕਸ਼ਨ ਅਸਿੱਧੇ (ਅਸਿੱਧੇ), ਪਾਵਰ ਕਿਊਰੀ ਅਤੇ ਪਾਵਰ ਪੀਵੋਟ ਐਡ-ਆਨ, ਆਦਿ ਬੈਰੀਕੇਡ ਦੇ ਇਸ ਪਾਸੇ ਤੋਂ, ਸਭ ਕੁਝ ਵਧੀਆ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ।

ਪਰ ਜੇ ਤੁਸੀਂ ਇੱਕ ਉਲਟ ਸਮੱਸਿਆ ਵਿੱਚ ਚਲੇ ਜਾਂਦੇ ਹੋ - ਇੱਕ ਟੇਬਲ ਤੋਂ ਵੱਖ ਵੱਖ ਸ਼ੀਟਾਂ ਵਿੱਚ ਡੇਟਾ ਫੈਲਾਉਣਾ - ਤਾਂ ਸਭ ਕੁਝ ਬਹੁਤ ਦੁਖਦਾਈ ਹੋ ਜਾਵੇਗਾ। ਇਸ ਸਮੇਂ, ਬਦਕਿਸਮਤੀ ਨਾਲ, ਐਕਸਲ ਦੇ ਸ਼ਸਤਰ ਵਿੱਚ ਅਜਿਹੇ ਡੇਟਾ ਵੱਖ ਕਰਨ ਲਈ ਕੋਈ ਵੀ ਸਭਿਅਕ ਬਿਲਟ-ਇਨ ਟੂਲ ਨਹੀਂ ਹਨ. ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਵਿੱਚ ਇੱਕ ਮੈਕਰੋ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ, ਜਾਂ ਬਾਅਦ ਵਿੱਚ ਥੋੜੀ ਜਿਹੀ "ਫਾਈਲ ਰਿਫਾਈਨਮੈਂਟ" ਦੇ ਨਾਲ ਮੈਕਰੋ ਰਿਕਾਰਡਰ + ਪਾਵਰ ਕਿਊਰੀ ਸੁਮੇਲ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ।

ਆਓ ਇਸ ਗੱਲ 'ਤੇ ਡੂੰਘਾਈ ਨਾਲ ਵਿਚਾਰ ਕਰੀਏ ਕਿ ਇਸਨੂੰ ਕਿਵੇਂ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਸਮੱਸਿਆ ਦਾ ਗਠਨ

ਸਾਡੇ ਕੋਲ ਸ਼ੁਰੂਆਤੀ ਡੇਟਾ ਦੇ ਤੌਰ 'ਤੇ ਵਿਕਰੀ ਲਈ 5000 ਤੋਂ ਵੱਧ ਕਤਾਰਾਂ ਦੇ ਆਕਾਰ ਵਾਲੀ ਇੱਕ ਸਾਰਣੀ ਹੈ:

ਇੱਕ ਟੇਬਲ ਨੂੰ ਸ਼ੀਟਾਂ ਵਿੱਚ ਵੰਡਣਾ

ਕਾਰਜ: ਇਸ ਸਾਰਣੀ ਤੋਂ ਡੇਟਾ ਨੂੰ ਇਸ ਕਿਤਾਬ ਦੀਆਂ ਵੱਖਰੀਆਂ ਸ਼ੀਟਾਂ 'ਤੇ ਸ਼ਹਿਰ ਦੁਆਰਾ ਵੰਡਣਾ। ਉਹ. ਆਉਟਪੁੱਟ 'ਤੇ, ਤੁਹਾਨੂੰ ਹਰੇਕ ਸ਼ੀਟ 'ਤੇ ਟੇਬਲ ਤੋਂ ਸਿਰਫ ਉਹ ਕਤਾਰਾਂ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਜਿੱਥੇ ਵਿਕਰੀ ਸੰਬੰਧਿਤ ਸ਼ਹਿਰ ਵਿੱਚ ਸੀ:

ਇੱਕ ਟੇਬਲ ਨੂੰ ਸ਼ੀਟਾਂ ਵਿੱਚ ਵੰਡਣਾ

ਤਿਆਰ ਕਰੋ

ਮੈਕਰੋ ਕੋਡ ਨੂੰ ਗੁੰਝਲਦਾਰ ਨਾ ਬਣਾਉਣ ਅਤੇ ਇਸਨੂੰ ਜਿੰਨਾ ਸੰਭਵ ਹੋ ਸਕੇ ਸਮਝਣਾ ਆਸਾਨ ਬਣਾਉਣ ਲਈ, ਆਓ ਕੁਝ ਤਿਆਰੀ ਦੇ ਕਦਮ ਕਰੀਏ।

ਪਹਿਲਾ, ਇੱਕ ਵੱਖਰੀ ਖੋਜ ਸਾਰਣੀ ਬਣਾਓ, ਜਿੱਥੇ ਇੱਕ ਸਿੰਗਲ ਕਾਲਮ ਉਹਨਾਂ ਸਾਰੇ ਸ਼ਹਿਰਾਂ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰੇਗਾ ਜਿਨ੍ਹਾਂ ਲਈ ਤੁਸੀਂ ਵੱਖਰੀਆਂ ਸ਼ੀਟਾਂ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਬੇਸ਼ੱਕ, ਇਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸਰੋਤ ਡੇਟਾ ਵਿੱਚ ਮੌਜੂਦ ਸਾਰੇ ਸ਼ਹਿਰ ਸ਼ਾਮਲ ਨਹੀਂ ਹੋ ਸਕਦੇ, ਪਰ ਸਿਰਫ਼ ਉਹੀ ਹਨ ਜਿਨ੍ਹਾਂ ਲਈ ਸਾਨੂੰ ਰਿਪੋਰਟਾਂ ਦੀ ਲੋੜ ਹੈ। ਅਜਿਹੀ ਸਾਰਣੀ ਬਣਾਉਣ ਦਾ ਸਭ ਤੋਂ ਆਸਾਨ ਤਰੀਕਾ ਹੈ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਡਾਟਾ - ਡੁਪਲੀਕੇਟ ਹਟਾਓ (ਡਾਟਾ — ਡੁਪਲੀਕੇਟ ਹਟਾਓ) ਕਾਲਮ ਕਾਪੀ ਲਈ ਦਿਲ ਜਾਂ ਫੰਕਸ਼ਨ UNIK (ਵਿਲੱਖਣ) - ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਐਕਸਲ 365 ਦਾ ਨਵੀਨਤਮ ਸੰਸਕਰਣ ਹੈ।

ਕਿਉਂਕਿ ਐਕਸਲ ਵਿੱਚ ਨਵੀਆਂ ਸ਼ੀਟਾਂ ਮੌਜੂਦਾ (ਪਿਛਲੇ) ਤੋਂ ਪਹਿਲਾਂ (ਖੱਬੇ ਪਾਸੇ) ਡਿਫੌਲਟ ਰੂਪ ਵਿੱਚ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਇਸ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸ਼ਹਿਰਾਂ ਨੂੰ ਘਟਦੇ ਕ੍ਰਮ (Z ਤੋਂ A ਤੱਕ) ਵਿੱਚ ਛਾਂਟਣਾ ਵੀ ਸਮਝਦਾਰੀ ਰੱਖਦਾ ਹੈ - ਫਿਰ ਰਚਨਾ ਤੋਂ ਬਾਅਦ, ਸ਼ਹਿਰ ਸ਼ੀਟਾਂ ਨੂੰ ਵਰਣਮਾਲਾ ਅਨੁਸਾਰ ਵਿਵਸਥਿਤ ਕੀਤਾ ਜਾਵੇਗਾ।

ਦੂਜਾ, пਦੋਵੇਂ ਟੇਬਲਾਂ ਨੂੰ ਡਾਇਨਾਮਿਕ ਵਿੱਚ ਬਦਲੋ ("ਸਮਾਰਟ") ਉਹਨਾਂ ਨਾਲ ਕੰਮ ਕਰਨਾ ਆਸਾਨ ਬਣਾਉਣ ਲਈ। ਅਸੀਂ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ਘਰ - ਇੱਕ ਸਾਰਣੀ ਦੇ ਰੂਪ ਵਿੱਚ ਫਾਰਮੈਟ ਕਰੋ (ਘਰ - ਸਾਰਣੀ ਦੇ ਰੂਪ ਵਿੱਚ ਫਾਰਮੈਟ) ਜਾਂ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ Ctrl+T. ਦਿਖਾਈ ਦੇਣ ਵਾਲੀ ਟੈਬ 'ਤੇ ਕੰਸਟਰਕਟਰ (ਡਿਜ਼ਾਈਨ) ਚਲੋ ਉਹਨਾਂ ਨੂੰ ਕਾਲ ਕਰੀਏ tablProdaji и ਟੇਬਲਸਿਟੀਕ੍ਰਮਵਾਰ:

ਇੱਕ ਟੇਬਲ ਨੂੰ ਸ਼ੀਟਾਂ ਵਿੱਚ ਵੰਡਣਾ

ਢੰਗ 1. ਸ਼ੀਟਾਂ ਦੁਆਰਾ ਵੰਡਣ ਲਈ ਮੈਕਰੋ

ਐਡਵਾਂਸਡ ਟੈਬ ਤੇ ਡਿਵੈਲਪਰ (ਡਿਵੈਲਪਰ) ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਜਾਂ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਦੀ ਵਰਤੋਂ ਕਰੋ Alt+F11. ਖੁੱਲ੍ਹਣ ਵਾਲੀ ਮੈਕਰੋ ਐਡੀਟਰ ਵਿੰਡੋ ਵਿੱਚ, ਮੀਨੂ ਰਾਹੀਂ ਇੱਕ ਨਵਾਂ ਖਾਲੀ ਮੋਡੀਊਲ ਪਾਓ ਸੰਮਿਲਿਤ ਕਰੋ - ਮੋਡੀਊਲ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤੇ ਕੋਡ ਨੂੰ ਉੱਥੇ ਕਾਪੀ ਕਰੋ:

ਸਬ ਸਪਲਿਟਰ() ਰੇਂਜ ("таблГорода") ਰੇਂਜ ("таблПродажи") ਵਿੱਚ ਹਰੇਕ ਸੈੱਲ ਲਈ। ਆਟੋਫਿਲਟਰ ਫੀਲਡ:=3, ਮਾਪਦੰਡ1:=ਸੈੱਲ। ਮੁੱਲ ਰੇਂਜ("таблПродажи[#All]")।ਸਪੈਸ਼ਲ ਸੈੱਲਸ(xlispyColly)। Sheets.Add ActiveSheet.Paste ActiveSheet.Name = cell.Value ActiveSheet.UsedRange.Columns.AutoFit ਅਗਲੀ ਸੈਲ ਵਰਕਸ਼ੀਟਾਂ("Данные").ShowAllData End Sub	  

ਇੱਥੇ ਇੱਕ ਲੂਪ ਨਾਲ ਹਰੇਕ ਲਈ … ਅੱਗੇ ਡਾਇਰੈਕਟਰੀ ਦੇ ਸੈੱਲਾਂ ਰਾਹੀਂ ਬੀਤਣ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਟੇਬਲਸਿਟੀ, ਜਿੱਥੇ ਹਰੇਕ ਸ਼ਹਿਰ ਲਈ ਇਸ ਨੂੰ ਫਿਲਟਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ (ਵਿਧੀ ਆਟੋਫਿਲਟਰ) ਅਸਲੀ ਵਿਕਰੀ ਸਾਰਣੀ ਵਿੱਚ ਅਤੇ ਫਿਰ ਨਤੀਜਿਆਂ ਨੂੰ ਨਵੀਂ ਬਣਾਈ ਗਈ ਸ਼ੀਟ ਵਿੱਚ ਕਾਪੀ ਕਰਨਾ। ਰਸਤੇ ਦੇ ਨਾਲ, ਬਣਾਈ ਗਈ ਸ਼ੀਟ ਦਾ ਨਾਮ ਬਦਲ ਕੇ ਸ਼ਹਿਰ ਦੇ ਉਸੇ ਨਾਮ 'ਤੇ ਰੱਖਿਆ ਗਿਆ ਹੈ ਅਤੇ ਸੁੰਦਰਤਾ ਲਈ ਕਾਲਮਾਂ ਦੀ ਚੌੜਾਈ ਨੂੰ ਆਟੋ-ਫਿਟਿੰਗ ਚਾਲੂ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।

ਤੁਸੀਂ ਟੈਬ 'ਤੇ ਐਕਸਲ ਵਿੱਚ ਬਣਾਏ ਮੈਕਰੋ ਨੂੰ ਚਲਾ ਸਕਦੇ ਹੋ ਡਿਵੈਲਪਰ ਬਟਨ ਨੂੰ ਮੈਕਰੋ (ਵਿਕਾਸਕਾਰ - ਮੈਕਰੋਜ਼) ਜਾਂ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ Alt+F8.

ਢੰਗ 2. ਪਾਵਰ ਕਿਊਰੀ ਵਿੱਚ ਕਈ ਸਵਾਲ ਬਣਾਓ

ਪਿਛਲੀ ਵਿਧੀ, ਇਸਦੀ ਸਾਰੀ ਸੰਖੇਪਤਾ ਅਤੇ ਸਰਲਤਾ ਲਈ, ਇੱਕ ਮਹੱਤਵਪੂਰਣ ਕਮੀ ਹੈ - ਮੈਕਰੋ ਦੁਆਰਾ ਬਣਾਈਆਂ ਗਈਆਂ ਸ਼ੀਟਾਂ ਨੂੰ ਅੱਪਡੇਟ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਅਸਲੀ ਵਿਕਰੀ ਸਾਰਣੀ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਜੇਕਰ ਫਲਾਈ 'ਤੇ ਅੱਪਡੇਟ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ VBA + ਪਾਵਰ ਕਿਊਰੀ ਬੰਡਲ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ, ਜਾਂ ਇਸ ਦੀ ਬਜਾਏ, ਸਥਿਰ ਡੇਟਾ ਨਾਲ ਸਿਰਫ਼ ਸ਼ੀਟਾਂ ਹੀ ਨਹੀਂ, ਸਗੋਂ ਅੱਪਡੇਟ ਕੀਤੇ ਪਾਵਰ ਕਿਊਰੀ ਸਵਾਲਾਂ ਨਾਲ ਮੈਕਰੋ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਪਵੇਗੀ।

ਇਸ ਕੇਸ ਵਿੱਚ ਮੈਕਰੋ ਅੰਸ਼ਕ ਤੌਰ ਤੇ ਪਿਛਲੇ ਇੱਕ ਵਰਗਾ ਹੈ (ਇਸਦਾ ਇੱਕ ਚੱਕਰ ਵੀ ਹੈ ਹਰੇਕ ਲਈ … ਅੱਗੇ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਸ਼ਹਿਰਾਂ ਉੱਤੇ ਦੁਹਰਾਉਣ ਲਈ), ਪਰ ਲੂਪ ਦੇ ਅੰਦਰ ਹੁਣ ਫਿਲਟਰਿੰਗ ਅਤੇ ਨਕਲ ਨਹੀਂ ਕੀਤੀ ਜਾਏਗੀ, ਪਰ ਇੱਕ ਪਾਵਰ ਕਿਊਰੀ ਪੁੱਛਗਿੱਛ ਬਣਾਉਣਾ ਅਤੇ ਇਸਦੇ ਨਤੀਜਿਆਂ ਨੂੰ ਇੱਕ ਨਵੀਂ ਸ਼ੀਟ ਵਿੱਚ ਅਪਲੋਡ ਕਰਨਾ:

ਰੇਂਜ ("ਸਿਟੀ ਟੇਬਲ") ਵਿੱਚ ਹਰੇਕ ਸੈੱਲ ਲਈ ਸਬ ਸਪਲਿਟਰ2() ActiveWorkbook.Queries.Add Name:=cell.Value, Formula:= _ " let" & Chr(13) & "" & Chr(10) & " ਸਰੋਤ = Excel.CurrentWorkbook(){[Name=""TableSales""]}[Content]," & Chr(13) & "" & Chr(10) & "#""Changed Type"" = Table.TransformColumnTypes(ਸਰੋਤ , {{""ਸ਼੍ਰੇਣੀ"", ਟਾਈਪ ਟੈਕਸਟ}, {""ਨਾਮ"", ਟਾਈਪ ਟੈਕਸਟ}, {""ਸ਼ਹਿਰ"", ਟਾਈਪ ਟੈਕਸਟ}, {""ਮੈਨੇਜਰ"", ਟੈਕਸਟ ਟਾਈਪ ਕਰੋ}, {""ਡੀਲ ਮਿਤੀ "", ਮਿਤੀ ਸਮਾਂ}, {""ਕੀਮਤ"", ਕਿਸਮ ਨੰਬਰ}})," ਅਤੇ Chr(13) ਅਤੇ "" ਅਤੇ Chr(10) ਅਤੇ "#""ਫਿਲਟਰ ਲਾਗੂ ਕੀਤੀਆਂ ਕਤਾਰਾਂ"" = ਸਾਰਣੀ ਵੇਖੋ " & _ "lectRows(#""ਬਦਲੀ ਗਈ ਕਿਸਮ"", ਹਰੇਕ ([City] = """ & cell. Value & """))" & Chr(13) & "" & Chr(10) & "in " & Chr(13) & "" & Chr(10) & " #""ਫਿਲਟਰ ਨਾਲ ਕਤਾਰਾਂ ਲਾਗੂ ਕੀਤੀਆਂ ਗਈਆਂ ਪ੍ਰਦਾਤਾ =Microsoft.Mashup.OleDb.0;ਡਾਟਾ ਸਰੋਤ=$Workbook$;Location=" & cell.Value & ";Extended Properties=""""" _ , ਮੰਜ਼ਿਲ:=Range("$A$1"))। QueryTable .CommandType = xlCmd Sql .CommandText = ਐਰੇ("SELECT *FROM [" & cell.Value & "]") .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = XlPassertSword. SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 1 .PreserveColumnInfo = True .ListObject.DisplayName = cell.Value .Refresh BackgroundQuery:=False End with ActiveSheet.Name.Name=Next cell।  

ਇਸ ਦੇ ਲਾਂਚ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਸ਼ਹਿਰ ਦੁਆਰਾ ਉਹੀ ਸ਼ੀਟਾਂ ਦੇਖਾਂਗੇ, ਪਰ ਪਹਿਲਾਂ ਹੀ ਬਣਾਈਆਂ ਗਈਆਂ ਪਾਵਰ ਕਿਊਰੀ ਪੁੱਛਗਿੱਛਾਂ ਉਹਨਾਂ ਨੂੰ ਬਣਾਉਂਦੀਆਂ ਹਨ:

ਇੱਕ ਟੇਬਲ ਨੂੰ ਸ਼ੀਟਾਂ ਵਿੱਚ ਵੰਡਣਾ

ਸਰੋਤ ਡੇਟਾ ਵਿੱਚ ਕਿਸੇ ਵੀ ਤਬਦੀਲੀ ਦੇ ਨਾਲ, ਇਹ ਸਹੀ ਮਾਊਸ ਬਟਨ - ਕਮਾਂਡ ਨਾਲ ਅਨੁਸਾਰੀ ਸਾਰਣੀ ਨੂੰ ਅਪਡੇਟ ਕਰਨ ਲਈ ਕਾਫ਼ੀ ਹੋਵੇਗਾ ਅੱਪਡੇਟ ਕਰੋ ਅਤੇ ਸੇਵ ਕਰੋ (ਤਾਜ਼ਾ ਕਰੋ) ਜਾਂ ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਰੇ ਸ਼ਹਿਰਾਂ ਨੂੰ ਇੱਕੋ ਵਾਰ ਬਲਕ ਵਿੱਚ ਅੱਪਡੇਟ ਕਰੋ ਸਭ ਨੂੰ ਅਪਡੇਟ ਕਰੋ ਟੈਬ ਡੇਟਾ (ਡਾਟਾ — ਸਭ ਨੂੰ ਤਾਜ਼ਾ ਕਰੋ).

  • ਮੈਕਰੋ ਕੀ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ ਅਤੇ ਵਰਤਣਾ ਹੈ
  • ਵਰਕਬੁੱਕ ਸ਼ੀਟਾਂ ਨੂੰ ਵੱਖਰੀਆਂ ਫਾਈਲਾਂ ਵਜੋਂ ਸੁਰੱਖਿਅਤ ਕਰਨਾ
  • ਕਿਤਾਬ ਦੀਆਂ ਸਾਰੀਆਂ ਸ਼ੀਟਾਂ ਤੋਂ ਇੱਕ ਸਾਰਣੀ ਵਿੱਚ ਡਾਟਾ ਇਕੱਠਾ ਕਰਨਾ

ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ