LAMBDA ಎಕ್ಸೆಲ್‌ನ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಈ ಸಮಯದಲ್ಲಿ, ಮೈಕ್ರೋಸಾಫ್ಟ್ ಎಕ್ಸೆಲ್ ಸುಮಾರು ಐನೂರು ವರ್ಕ್‌ಶೀಟ್ ಕಾರ್ಯಗಳನ್ನು ಫಂಕ್ಷನ್ ವಿಝಾರ್ಡ್ ವಿಂಡೋ ಮೂಲಕ ಲಭ್ಯವಿದೆ - ಬಟನ್ fx ಫಾರ್ಮುಲಾ ಬಾರ್‌ನಲ್ಲಿ. ಇದು ಬಹಳ ಯೋಗ್ಯವಾದ ಸೆಟ್ ಆಗಿದೆ, ಆದರೆ, ಆದಾಗ್ಯೂ, ಬಹುತೇಕ ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ಬೇಗ ಅಥವಾ ನಂತರ ಈ ಪಟ್ಟಿಯು ತನಗೆ ಅಗತ್ಯವಿರುವ ಕಾರ್ಯವನ್ನು ಹೊಂದಿರದ ಪರಿಸ್ಥಿತಿಯನ್ನು ಎದುರಿಸುತ್ತಾರೆ - ಏಕೆಂದರೆ ಅದು ಎಕ್ಸೆಲ್‌ನಲ್ಲಿಲ್ಲ.

ಇಲ್ಲಿಯವರೆಗೆ, ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಏಕೈಕ ಮಾರ್ಗವೆಂದರೆ ಮ್ಯಾಕ್ರೋಗಳು, ಅಂದರೆ ವಿಷುಯಲ್ ಬೇಸಿಕ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಸ್ವಂತ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯವನ್ನು (UDF = ಬಳಕೆದಾರ ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯ) ಬರೆಯುವುದು, ಇದಕ್ಕೆ ಸೂಕ್ತವಾದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕೌಶಲ್ಯಗಳು ಬೇಕಾಗುತ್ತವೆ ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಇದು ಸುಲಭವಲ್ಲ. ಆದಾಗ್ಯೂ, ಇತ್ತೀಚಿನ ಆಫೀಸ್ 365 ನವೀಕರಣಗಳೊಂದಿಗೆ, ಪರಿಸ್ಥಿತಿಯು ಉತ್ತಮವಾಗಿ ಬದಲಾಗಿದೆ - ವಿಶೇಷ "ಹೊದಿಕೆ" ಕಾರ್ಯವನ್ನು ಎಕ್ಸೆಲ್ಗೆ ಸೇರಿಸಲಾಗಿದೆ ಲ್ಯಾಂಬ್ಡಾ. ಅದರ ಸಹಾಯದಿಂದ, ನಿಮ್ಮ ಸ್ವಂತ ಕಾರ್ಯಗಳನ್ನು ರಚಿಸುವ ಕಾರ್ಯವು ಈಗ ಸುಲಭವಾಗಿ ಮತ್ತು ಸುಂದರವಾಗಿ ಪರಿಹರಿಸಲ್ಪಡುತ್ತದೆ.

ಕೆಳಗಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಅದರ ಬಳಕೆಯ ತತ್ವವನ್ನು ನೋಡೋಣ.

ನಿಮಗೆ ತಿಳಿದಿರುವಂತೆ, ಎಕ್ಸೆಲ್ ಹಲವಾರು ದಿನಾಂಕ ಪಾರ್ಸಿಂಗ್ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿದೆ ಅದು ನಿರ್ದಿಷ್ಟ ದಿನಾಂಕಕ್ಕಾಗಿ ದಿನ, ತಿಂಗಳು, ವಾರ ಮತ್ತು ವರ್ಷದ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಆದರೆ ಕೆಲವು ಕಾರಣಗಳಿಗಾಗಿ ತ್ರೈಮಾಸಿಕದ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸುವ ಯಾವುದೇ ಕಾರ್ಯವಿಲ್ಲ, ಅದು ಆಗಾಗ್ಗೆ ಅಗತ್ಯವಾಗಿರುತ್ತದೆ, ಸರಿ? ಈ ನ್ಯೂನತೆಯನ್ನು ಸರಿಪಡಿಸೋಣ ಮತ್ತು ಅದರೊಂದಿಗೆ ರಚಿಸೋಣ ಲ್ಯಾಂಬ್ಡಾ ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಸ್ವಂತ ಹೊಸ ಕಾರ್ಯ.

ಹಂತ 1. ಸೂತ್ರವನ್ನು ಬರೆಯಿರಿ

ಹಸ್ತಚಾಲಿತವಾಗಿ ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ನಾವು ಶೀಟ್ ಕೋಶದಲ್ಲಿ ಸೂತ್ರವನ್ನು ಬರೆಯುತ್ತೇವೆ ಅದು ನಮಗೆ ಬೇಕಾದುದನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ ಎಂಬ ಅಂಶದೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ. ಕ್ವಾರ್ಟರ್ ಸಂಖ್ಯೆಯ ಸಂದರ್ಭದಲ್ಲಿ, ಇದನ್ನು ಮಾಡಬಹುದು, ಉದಾಹರಣೆಗೆ, ಈ ರೀತಿ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಹಂತ 2. LAMBDA ಮತ್ತು ಪರೀಕ್ಷೆಯಲ್ಲಿ ಸುತ್ತುವುದು

ಈಗ ಹೊಸ LAMBDA ಕಾರ್ಯವನ್ನು ಅನ್ವಯಿಸಲು ಮತ್ತು ಅದರಲ್ಲಿ ನಮ್ಮ ಸೂತ್ರವನ್ನು ಕಟ್ಟಲು ಸಮಯವಾಗಿದೆ. ಕಾರ್ಯ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:

=LAMBDA(ವೇರಿಯಬಲ್ 1; ವೇರಿಯಬಲ್ 2; … ವೇರಿಯಬಲ್ ಎನ್ ; ಅಭಿವ್ಯಕ್ತಿ)

ಅಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಅಸ್ಥಿರಗಳ ಹೆಸರುಗಳನ್ನು ಮೊದಲು ಪಟ್ಟಿಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ ಆರ್ಗ್ಯುಮೆಂಟ್ ಯಾವಾಗಲೂ ಸೂತ್ರ ಅಥವಾ ಅವುಗಳನ್ನು ಬಳಸುವ ಲೆಕ್ಕಾಚಾರದ ಅಭಿವ್ಯಕ್ತಿಯಾಗಿದೆ. ವೇರಿಯಬಲ್ ಹೆಸರುಗಳು ಸೆಲ್ ವಿಳಾಸಗಳಂತೆ ಕಾಣಬಾರದು ಮತ್ತು ಚುಕ್ಕೆಗಳನ್ನು ಹೊಂದಿರಬಾರದು.

ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಕೇವಲ ಒಂದು ವೇರಿಯೇಬಲ್ ಇರುತ್ತದೆ - ನಾವು ತ್ರೈಮಾಸಿಕ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವ ದಿನಾಂಕ. ಅದಕ್ಕೆ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಕರೆಯೋಣ, ಡಿ ಎಂದು ಹೇಳೋಣ. ನಂತರ ಒಂದು ಕಾರ್ಯದಲ್ಲಿ ನಮ್ಮ ಸೂತ್ರವನ್ನು ಸುತ್ತುವುದು ಲ್ಯಾಂಬ್ಡಾ ಮತ್ತು ಮೂಲ ಕೋಶ A2 ನ ವಿಳಾಸವನ್ನು ಕಾಲ್ಪನಿಕ ವೇರಿಯಬಲ್ ಹೆಸರಿನೊಂದಿಗೆ ಬದಲಿಸಿ, ನಾವು ಪಡೆಯುತ್ತೇವೆ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಅಂತಹ ರೂಪಾಂತರದ ನಂತರ, ನಮ್ಮ ಸೂತ್ರವು (ವಾಸ್ತವವಾಗಿ, ಸರಿ!) ದೋಷವನ್ನು ಉಂಟುಮಾಡಲು ಪ್ರಾರಂಭಿಸಿತು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ, ಏಕೆಂದರೆ ಈಗ ಸೆಲ್ A2 ನಿಂದ ಮೂಲ ದಿನಾಂಕವನ್ನು ಅದಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿಲ್ಲ. ಪರೀಕ್ಷೆ ಮತ್ತು ವಿಶ್ವಾಸಕ್ಕಾಗಿ, ಕಾರ್ಯದ ನಂತರ ಅವುಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನೀವು ಅದಕ್ಕೆ ವಾದಗಳನ್ನು ರವಾನಿಸಬಹುದು ಲ್ಯಾಂಬ್ಡಾ ಆವರಣದಲ್ಲಿ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಹಂತ 3. ಹೆಸರನ್ನು ರಚಿಸಿ

ಈಗ ಸುಲಭ ಮತ್ತು ಮೋಜಿನ ಭಾಗಕ್ಕಾಗಿ. ನಾವು ತೆರೆಯುತ್ತೇವೆ ಹೆಸರು ವ್ಯವಸ್ಥಾಪಕ ಟ್ಯಾಬ್ ಸೂತ್ರ (ಸೂತ್ರಗಳು - ಹೆಸರು ನಿರ್ವಾಹಕ) ಮತ್ತು ಬಟನ್‌ನೊಂದಿಗೆ ಹೊಸ ಹೆಸರನ್ನು ರಚಿಸಿ ರಚಿಸಿ (ರಚಿಸಿ). ಮುಂದೆ ಬನ್ನಿ ಮತ್ತು ನಮ್ಮ ಭವಿಷ್ಯದ ಕಾರ್ಯಕ್ಕಾಗಿ ಹೆಸರನ್ನು ನಮೂದಿಸಿ (ಉದಾಹರಣೆಗೆ, ನೋಮ್ಕ್ವಾರ್ತಾಲಾ), ಮತ್ತು ಕ್ಷೇತ್ರದಲ್ಲಿ ಲಿಂಕ್ (ಉಲ್ಲೇಖ) ಫಾರ್ಮುಲಾ ಬಾರ್‌ನಿಂದ ಎಚ್ಚರಿಕೆಯಿಂದ ನಕಲಿಸಿ ಮತ್ತು ನಮ್ಮ ಕಾರ್ಯವನ್ನು ಅಂಟಿಸಿ ಲ್ಯಾಂಬ್ಡಾ, ಕೊನೆಯ ಆರ್ಗ್ಯುಮೆಂಟ್ ಇಲ್ಲದೆ ಮಾತ್ರ (A2):

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಎಲ್ಲವೂ. ಕ್ಲಿಕ್ ಮಾಡಿದ ನಂತರ OK ರಚಿಸಲಾದ ಕಾರ್ಯವನ್ನು ಈ ಕಾರ್ಯಪುಸ್ತಕದ ಯಾವುದೇ ಹಾಳೆಯಲ್ಲಿ ಯಾವುದೇ ಕೋಶದಲ್ಲಿ ಬಳಸಬಹುದು:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಇತರ ಪುಸ್ತಕಗಳಲ್ಲಿ ಬಳಸಿ

ಏಕೆಂದರೆ ಇದರೊಂದಿಗೆ ರಚಿಸಲಾಗಿದೆ ಲ್ಯಾಂಬ್ಡಾ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳು, ವಾಸ್ತವವಾಗಿ, ಹೆಸರಿಸಲಾದ ಶ್ರೇಣಿಗಳಾಗಿರುವುದರಿಂದ, ಪ್ರಸ್ತುತ ವರ್ಕ್‌ಬುಕ್‌ನಲ್ಲಿ ಮಾತ್ರವಲ್ಲದೆ ನೀವು ಅವುಗಳನ್ನು ಸುಲಭವಾಗಿ ಲಭ್ಯವಾಗುವಂತೆ ಮಾಡಬಹುದು. ಕಾರ್ಯದೊಂದಿಗೆ ಸೆಲ್ ಅನ್ನು ನಕಲಿಸಲು ಮತ್ತು ಇನ್ನೊಂದು ಫೈಲ್‌ನ ಹಾಳೆಯಲ್ಲಿ ಎಲ್ಲಿಯಾದರೂ ಅಂಟಿಸಲು ಸಾಕು.

LAMBDA ಮತ್ತು ಡೈನಾಮಿಕ್ ಅರೇಗಳು

ಕಾರ್ಯದೊಂದಿಗೆ ರಚಿಸಲಾದ ಕಸ್ಟಮ್ ಕಾರ್ಯಗಳು ಲ್ಯಾಂಬ್ಡಾ ಹೊಸ ಡೈನಾಮಿಕ್ ಅರೇಗಳು ಮತ್ತು ಅವುಗಳ ಕಾರ್ಯಗಳೊಂದಿಗೆ ಕೆಲಸವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಬೆಂಬಲಿಸಿ (ಫಿಲ್ಟರ್, UNIK, GRADE2020 ರಲ್ಲಿ Microsoft Excel ಗೆ ಸೇರಿಸಲಾಗಿದೆ.

ನಾವು ಹೊಸ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯವನ್ನು ರಚಿಸಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ಹೇಳೋಣ ಅದು ಎರಡು ಪಟ್ಟಿಗಳನ್ನು ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ - ಮೊದಲ ಪಟ್ಟಿಯಿಂದ ಆ ಅಂಶಗಳು ಎರಡನೆಯದರಲ್ಲಿಲ್ಲ. ಜೀವನದ ಕೆಲಸ, ಅಲ್ಲವೇ? ಹಿಂದೆ, ಇದಕ್ಕಾಗಿ ಅವರು ಲಾ ಎರಡೂ ಕಾರ್ಯಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರು ವಿಪಿಆರ್ (VLOOKUP), ಅಥವಾ PivotTables, ಅಥವಾ ಪವರ್ ಕ್ವೆರಿ ಪ್ರಶ್ನೆಗಳು. ಈಗ ನೀವು ಒಂದು ಸೂತ್ರದೊಂದಿಗೆ ಮಾಡಬಹುದು:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಇಂಗ್ಲಿಷ್ ಆವೃತ್ತಿಯಲ್ಲಿ ಅದು ಹೀಗಿರುತ್ತದೆ:

=LAMBDA(a;b;ФИЛЬТР(a;СЧЁТЕСЛИ(b;a)=0))(A1:A6;C1:C10)

ಇಲ್ಲಿ ಕಾರ್ಯ COUNTIF ಎರಡನೆಯದರಲ್ಲಿ ಮೊದಲ ಪಟ್ಟಿಯ ಪ್ರತಿಯೊಂದು ಅಂಶದ ಸಂಭವಿಸುವಿಕೆಯ ಸಂಖ್ಯೆಯನ್ನು ಎಣಿಸುತ್ತದೆ, ಮತ್ತು ನಂತರ ಕಾರ್ಯ ಫಿಲ್ಟರ್ ಅವರಲ್ಲಿ ಈ ಘಟನೆಗಳನ್ನು ಹೊಂದಿರದವರನ್ನು ಮಾತ್ರ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಈ ರಚನೆಯನ್ನು ಸುತ್ತುವ ಮೂಲಕ ಲ್ಯಾಂಬ್ಡಾ ಮತ್ತು ಹೆಸರಿನೊಂದಿಗೆ ಅದರ ಆಧಾರದ ಮೇಲೆ ಹೆಸರಿಸಲಾದ ಶ್ರೇಣಿಯನ್ನು ರಚಿಸುವುದು, ಉದಾಹರಣೆಗೆ, ಹುಡುಕಾಟ ವಿತರಣೆ - ಡೈನಾಮಿಕ್ ಅರೇ ರೂಪದಲ್ಲಿ ಎರಡು ಪಟ್ಟಿಗಳನ್ನು ಹೋಲಿಸುವ ಫಲಿತಾಂಶವನ್ನು ಹಿಂದಿರುಗಿಸುವ ಅನುಕೂಲಕರ ಕಾರ್ಯವನ್ನು ನಾವು ಪಡೆಯುತ್ತೇವೆ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಮೂಲ ಡೇಟಾವು ಸಾಮಾನ್ಯವಲ್ಲ, ಆದರೆ “ಸ್ಮಾರ್ಟ್” ಕೋಷ್ಟಕಗಳಾಗಿದ್ದರೆ, ನಮ್ಮ ಕಾರ್ಯವು ಸಮಸ್ಯೆಗಳಿಲ್ಲದೆ ನಿಭಾಯಿಸುತ್ತದೆ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಮತ್ತೊಂದು ಉದಾಹರಣೆಯೆಂದರೆ ಪಠ್ಯವನ್ನು XML ಗೆ ಪರಿವರ್ತಿಸುವ ಮೂಲಕ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ವಿಭಜಿಸುವುದು ಮತ್ತು ನಾವು ಇತ್ತೀಚೆಗೆ ಪಾರ್ಸ್ ಮಾಡಿದ FILTER.XML ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸೆಲ್ ಮೂಲಕ ಸೆಲ್ ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡುವುದು. ಪ್ರತಿ ಬಾರಿಯೂ ಈ ಸಂಕೀರ್ಣ ಸೂತ್ರವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪುನರುತ್ಪಾದಿಸದಿರಲು, ಅದನ್ನು ಲ್ಯಾಂಬ್ಡಾದಲ್ಲಿ ಕಟ್ಟಲು ಮತ್ತು ಅದರ ಆಧಾರದ ಮೇಲೆ ಡೈನಾಮಿಕ್ ಶ್ರೇಣಿಯನ್ನು ರಚಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ, ಅಂದರೆ ಹೊಸ ಕಾಂಪ್ಯಾಕ್ಟ್ ಮತ್ತು ಅನುಕೂಲಕರ ಕಾರ್ಯ, ಅದನ್ನು ಹೆಸರಿಸುವುದು, ಉದಾಹರಣೆಗೆ, RAZDTEXT:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಈ ಕಾರ್ಯದ ಮೊದಲ ವಾದವು ಮೂಲ ಪಠ್ಯದೊಂದಿಗೆ ಕೋಶವಾಗಿರುತ್ತದೆ, ಮತ್ತು ಎರಡನೆಯದು - ವಿಭಜಕ ಪಾತ್ರ, ಮತ್ತು ಇದು ಫಲಿತಾಂಶವನ್ನು ಸಮತಲ ಡೈನಾಮಿಕ್ ರಚನೆಯ ರೂಪದಲ್ಲಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಫಂಕ್ಷನ್ ಕೋಡ್ ಈ ಕೆಳಗಿನಂತಿರುತ್ತದೆ:

=LAMBDA(t;d; ಟ್ರಾನ್ಸ್ಪೋಸ್(FILTER.XML(""&ಬದಲಿ (t;d? "«)&»";"//Y")))

ಉದಾಹರಣೆಗಳ ಪಟ್ಟಿ ಅಂತ್ಯವಿಲ್ಲ - ನೀವು ಅದೇ ದೀರ್ಘ ಮತ್ತು ತೊಡಕಿನ ಸೂತ್ರವನ್ನು ನಮೂದಿಸಬೇಕಾದ ಯಾವುದೇ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ, LAMBDA ಕಾರ್ಯವು ಜೀವನವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಲಭಗೊಳಿಸುತ್ತದೆ.

ಅಕ್ಷರಗಳ ಪುನರಾವರ್ತಿತ ಎಣಿಕೆ

ಹಿಂದಿನ ಎಲ್ಲಾ ಉದಾಹರಣೆಗಳು LAMBDA ಫಂಕ್ಷನ್‌ನ ಒಂದು, ಅತ್ಯಂತ ಸ್ಪಷ್ಟವಾದ ಬದಿಯನ್ನು ಮಾತ್ರ ತೋರಿಸಿವೆ - ಅದರಲ್ಲಿ ದೀರ್ಘ ಸೂತ್ರಗಳನ್ನು ಸುತ್ತುವ ಮತ್ತು ಅವುಗಳ ಇನ್‌ಪುಟ್ ಅನ್ನು ಸರಳಗೊಳಿಸುವ "ಹೊದಿಕೆ" ಆಗಿ ಇದರ ಬಳಕೆ. ವಾಸ್ತವವಾಗಿ, LAMBDA ಮತ್ತೊಂದು, ಹೆಚ್ಚು ಆಳವಾದ, ಭಾಗವನ್ನು ಹೊಂದಿದ್ದು ಅದು ಪೂರ್ಣ ಪ್ರಮಾಣದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಾಗಿ ಬದಲಾಗುತ್ತದೆ.

ವಾಸ್ತವವೆಂದರೆ LAMBDA ಕಾರ್ಯಗಳ ಮೂಲಭೂತವಾಗಿ ಪ್ರಮುಖ ಲಕ್ಷಣವೆಂದರೆ ಅವುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯ ಪುನರಾವರ್ತನೆ - ಲೆಕ್ಕಾಚಾರಗಳ ತರ್ಕ, ಲೆಕ್ಕಾಚಾರದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಕಾರ್ಯವು ಸ್ವತಃ ಕರೆ ಮಾಡಿದಾಗ. ಅಭ್ಯಾಸದಿಂದ, ಇದು ತೆವಳುವಂತೆ ತೋರುತ್ತದೆ, ಆದರೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನಲ್ಲಿ, ಪುನರಾವರ್ತನೆಯು ಸಾಮಾನ್ಯ ವಿಷಯವಾಗಿದೆ. ವಿಷುಯಲ್ ಬೇಸಿಕ್‌ನಲ್ಲಿ ಮ್ಯಾಕ್ರೋಗಳಲ್ಲಿ ಸಹ, ನೀವು ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು ಮತ್ತು ಈಗ, ನೀವು ನೋಡುವಂತೆ, ಅದು ಎಕ್ಸೆಲ್‌ಗೆ ಬಂದಿದೆ. ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಯೊಂದಿಗೆ ಈ ತಂತ್ರವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸೋಣ.

ಮೂಲ ಪಠ್ಯದಿಂದ ನೀಡಲಾದ ಎಲ್ಲಾ ಅಕ್ಷರಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯವನ್ನು ನಾವು ರಚಿಸಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ಭಾವಿಸೋಣ. ಅಂತಹ ಕಾರ್ಯದ ಉಪಯುಕ್ತತೆ, ನೀವು ಸಾಬೀತುಪಡಿಸುವ ಅಗತ್ಯವಿಲ್ಲ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ - ಅದರ ಸಹಾಯದಿಂದ ಕಸದ ಇನ್ಪುಟ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಲು ಇದು ತುಂಬಾ ಅನುಕೂಲಕರವಾಗಿರುತ್ತದೆ, ಸರಿ?

ಆದಾಗ್ಯೂ, ಹಿಂದಿನ, ಪುನರಾವರ್ತಿತವಲ್ಲದ ಉದಾಹರಣೆಗಳಿಗೆ ಹೋಲಿಸಿದರೆ, ಎರಡು ತೊಂದರೆಗಳು ನಮಗೆ ಕಾಯುತ್ತಿವೆ.

  1. ನಾವು ಅದರ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ನಮ್ಮ ಕಾರ್ಯಕ್ಕಾಗಿ ನಾವು ಒಂದು ಹೆಸರಿನೊಂದಿಗೆ ಬರಬೇಕಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಅದರಲ್ಲಿ, ಈ ಹೆಸರನ್ನು ಈಗಾಗಲೇ ಕಾರ್ಯವನ್ನು ಕರೆಯಲು ಬಳಸಲಾಗುತ್ತದೆ.
  2. ಅಂತಹ ಪುನರಾವರ್ತಿತ ಕಾರ್ಯವನ್ನು ಸೆಲ್‌ಗೆ ನಮೂದಿಸುವುದು ಮತ್ತು LAMBDA ನಂತರ ಬ್ರಾಕೆಟ್‌ಗಳಲ್ಲಿ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವ ಮೂಲಕ ಅದನ್ನು ಡೀಬಗ್ ಮಾಡುವುದು (ನಾವು ಮೊದಲು ಮಾಡಿದಂತೆ) ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ. ನೀವು "ಮೊದಲಿನಿಂದ" ತಕ್ಷಣವೇ ಕಾರ್ಯವನ್ನು ರಚಿಸಬೇಕಾಗುತ್ತದೆ ಹೆಸರು ವ್ಯವಸ್ಥಾಪಕ (ಹೆಸರು ನಿರ್ವಾಹಕ).

ನಮ್ಮ ಕಾರ್ಯವನ್ನು CLEAN ಎಂದು ಕರೆಯೋಣ ಮತ್ತು ನಾವು ಎರಡು ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಹೊಂದಲು ಬಯಸುತ್ತೇವೆ - ಸ್ವಚ್ಛಗೊಳಿಸಬೇಕಾದ ಪಠ್ಯ ಮತ್ತು ಪಠ್ಯ ಸ್ಟ್ರಿಂಗ್‌ನಂತೆ ಹೊರತುಪಡಿಸಿದ ಅಕ್ಷರಗಳ ಪಟ್ಟಿ:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ನಾವು ಮೊದಲು ಮಾಡಿದಂತೆ, ಟ್ಯಾಬ್‌ನಲ್ಲಿ ರಚಿಸೋಣ ಸೂತ್ರ в ಹೆಸರು ಮ್ಯಾನೇಜರ್ ಶ್ರೇಣಿಯನ್ನು ಹೆಸರಿಸಿ, ಅದನ್ನು CLEAR ಎಂದು ಹೆಸರಿಸಿ ಮತ್ತು ಕ್ಷೇತ್ರದಲ್ಲಿ ನಮೂದಿಸಿ ರೇಂಜ್ ಕೆಳಗಿನ ನಿರ್ಮಾಣ:

=LAMBDA(t;d;IF(d="";t;CLEAR(ubSTITUTE(t;LEFT(d);"");MID(d;2;255))))

ಇಲ್ಲಿ ವೇರಿಯೇಬಲ್ t ಎಂಬುದು ತೆರವುಗೊಳಿಸಬೇಕಾದ ಮೂಲ ಪಠ್ಯವಾಗಿದೆ ಮತ್ತು d ಎಂಬುದು ಅಳಿಸಬೇಕಾದ ಅಕ್ಷರಗಳ ಪಟ್ಟಿಯಾಗಿದೆ.

ಇದು ಎಲ್ಲಾ ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:

ಪುನರಾವರ್ತನೆ 1

SUBSTITUTE(t;LEFT(d);””), ನೀವು ಊಹಿಸಿದಂತೆ, ಮೂಲ ಪಠ್ಯ t ನಲ್ಲಿ ಅಳಿಸಬೇಕಾದ d ಸೆಟ್‌ನಿಂದ ಎಡ ಅಕ್ಷರದಿಂದ ಮೊದಲ ಅಕ್ಷರವನ್ನು ಖಾಲಿ ಪಠ್ಯ ಸ್ಟ್ರಿಂಗ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ, ಅಂದರೆ " ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಎ". ಮಧ್ಯಂತರ ಪರಿಣಾಮವಾಗಿ, ನಾವು ಪಡೆಯುತ್ತೇವೆ:

Vsh zkz n 125 ರೂಬಲ್ಸ್ಗಳು.

ಪುನರಾವರ್ತನೆ 2

ನಂತರ ಕಾರ್ಯವು ತನ್ನನ್ನು ತಾನೇ ಕರೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಇನ್‌ಪುಟ್ ಆಗಿ (ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್) ಹಿಂದಿನ ಹಂತದಲ್ಲಿ ಶುಚಿಗೊಳಿಸಿದ ನಂತರ ಉಳಿದದ್ದನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ, ಮತ್ತು ಎರಡನೇ ಆರ್ಗ್ಯುಮೆಂಟ್ ಹೊರಗಿಡಲಾದ ಅಕ್ಷರಗಳ ಸ್ಟ್ರಿಂಗ್ ಮೊದಲಿನಿಂದ ಅಲ್ಲ, ಆದರೆ ಎರಡನೇ ಅಕ್ಷರದಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಅಂದರೆ “BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYA. , ಆರಂಭಿಕ "A" ಇಲ್ಲದೆ - ಇದನ್ನು MID ಕಾರ್ಯದಿಂದ ಮಾಡಲಾಗುತ್ತದೆ. ಮೊದಲಿನಂತೆ, ಕಾರ್ಯವು ಉಳಿದಿರುವ (ಬಿ) ಎಡಭಾಗದಿಂದ ಮೊದಲ ಅಕ್ಷರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅದಕ್ಕೆ ನೀಡಲಾದ ಪಠ್ಯದಲ್ಲಿ (Zkz n 125 ರೂಬಲ್ಸ್) ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ - ನಾವು ಮಧ್ಯಂತರ ಫಲಿತಾಂಶವನ್ನು ಪಡೆಯುತ್ತೇವೆ:

125 ರೂ.

ಪುನರಾವರ್ತನೆ 3

ಹಿಂದಿನ ಪುನರಾವರ್ತನೆಯಲ್ಲಿ (Bsh zkz n 125 ru.) ತೆರವುಗೊಳಿಸಬೇಕಾದ ಪಠ್ಯದ ಮೊದಲ ಆರ್ಗ್ಯುಮೆಂಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುವ ಕಾರ್ಯವು ಮತ್ತೆ ಕರೆಯುತ್ತದೆ, ಮತ್ತು ಎರಡನೇ ವಾದದಂತೆ, ಹೊರಗಿಡಲಾದ ಅಕ್ಷರಗಳ ಗುಂಪನ್ನು ಇನ್ನೂ ಒಂದು ಅಕ್ಷರದಿಂದ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ. ಎಡಕ್ಕೆ, ಅಂದರೆ "VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYUYA.," ಆರಂಭಿಕ "B" ಇಲ್ಲದೆ. ನಂತರ ಅದು ಮತ್ತೆ ಈ ಸೆಟ್‌ನಿಂದ ಎಡದಿಂದ (ಬಿ) ಮೊದಲ ಅಕ್ಷರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಪಠ್ಯದಿಂದ ತೆಗೆದುಹಾಕುತ್ತದೆ - ನಾವು ಪಡೆಯುತ್ತೇವೆ:

sh zkz n 125 ru.

ಮತ್ತು ಹೀಗೆ - ನೀವು ಕಲ್ಪನೆಯನ್ನು ಪಡೆಯುತ್ತೀರಿ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. ಪ್ರತಿ ಪುನರಾವರ್ತನೆಯೊಂದಿಗೆ, ತೆಗೆದುಹಾಕಬೇಕಾದ ಅಕ್ಷರಗಳ ಪಟ್ಟಿಯನ್ನು ಎಡಭಾಗದಲ್ಲಿ ಮೊಟಕುಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಾವು ಸೆಟ್‌ನಿಂದ ಮುಂದಿನ ಅಕ್ಷರವನ್ನು ಶೂನ್ಯದೊಂದಿಗೆ ಹುಡುಕುತ್ತೇವೆ ಮತ್ತು ಬದಲಾಯಿಸುತ್ತೇವೆ.

ಎಲ್ಲಾ ಅಕ್ಷರಗಳು ಖಾಲಿಯಾದಾಗ, ನಾವು ಲೂಪ್‌ನಿಂದ ನಿರ್ಗಮಿಸಬೇಕಾಗುತ್ತದೆ - ಈ ಪಾತ್ರವನ್ನು ಕಾರ್ಯದಿಂದ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ IF (IF), ಇದರಲ್ಲಿ ನಮ್ಮ ವಿನ್ಯಾಸವನ್ನು ಸುತ್ತಿಡಲಾಗಿದೆ. ಅಳಿಸಲು ಯಾವುದೇ ಅಕ್ಷರಗಳು ಉಳಿದಿಲ್ಲದಿದ್ದರೆ (d=””), ನಂತರ ಕಾರ್ಯವು ಇನ್ನು ಮುಂದೆ ಸ್ವತಃ ಕರೆ ಮಾಡಬಾರದು, ಆದರೆ ಪಠ್ಯವನ್ನು ಅದರ ಅಂತಿಮ ರೂಪದಲ್ಲಿ ತೆರವುಗೊಳಿಸಲು (ವೇರಿಯಬಲ್ t) ಹಿಂತಿರುಗಿಸಬೇಕು.

ಜೀವಕೋಶಗಳ ಪುನರಾವರ್ತಿತ ಪುನರಾವರ್ತನೆ

ಅಂತೆಯೇ, ನೀವು ನಿರ್ದಿಷ್ಟ ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಜೀವಕೋಶಗಳ ಪುನರಾವರ್ತಿತ ಎಣಿಕೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು. ನಾವು ಹೆಸರಿನ ಲ್ಯಾಂಬ್ಡಾ ಕಾರ್ಯವನ್ನು ರಚಿಸಲು ಬಯಸುತ್ತೇವೆ ಎಂದು ಭಾವಿಸೋಣ ಬದಲಿ ಪಟ್ಟಿ ಕೊಟ್ಟಿರುವ ಉಲ್ಲೇಖ ಪಟ್ಟಿಯ ಪ್ರಕಾರ ಮೂಲ ಪಠ್ಯದಲ್ಲಿನ ತುಣುಕುಗಳ ಸಗಟು ಬದಲಿಗಾಗಿ. ಫಲಿತಾಂಶವು ಈ ರೀತಿ ಇರಬೇಕು:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಆ. ನಮ್ಮ ಕಾರ್ಯದಲ್ಲಿ ಬದಲಿ ಪಟ್ಟಿ ಮೂರು ವಾದಗಳು ಇರುತ್ತವೆ:

  1. ಪ್ರಕ್ರಿಯೆಗೆ ಪಠ್ಯದೊಂದಿಗೆ ಕೋಶ (ಮೂಲ ವಿಳಾಸ)
  2. ಲುಕಪ್‌ನಿಂದ ಹುಡುಕಲು ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಕಾಲಮ್‌ನ ಮೊದಲ ಕೋಶ
  3. ಲುಕ್‌ಅಪ್‌ನಿಂದ ಬದಲಿ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಕಾಲಮ್‌ನ ಮೊದಲ ಕೋಶ

ಕಾರ್ಯವು ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಮೇಲಿನಿಂದ ಕೆಳಕ್ಕೆ ಹೋಗಬೇಕು ಮತ್ತು ಎಡ ಕಾಲಮ್‌ನಿಂದ ಅನುಕ್ರಮವಾಗಿ ಎಲ್ಲಾ ಆಯ್ಕೆಗಳನ್ನು ಬದಲಾಯಿಸಬೇಕು ಹುಡುಕಲು ಬಲ ಕಾಲಮ್‌ನಿಂದ ಅನುಗುಣವಾದ ಆಯ್ಕೆಗಳಿಗೆ ಬದಲಿ. ಕೆಳಗಿನ ಪುನರಾವರ್ತಿತ ಲ್ಯಾಂಬ್ಡಾ ಕಾರ್ಯದೊಂದಿಗೆ ನೀವು ಇದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದು:

LAMBDA ಎಕ್ಸೆಲ್ಸ್ ಹೊಸ ಸೂಪರ್ ಫಂಕ್ಷನ್ ಆಗಿದೆ

ಇಲ್ಲಿ, ವೇರಿಯೇಬಲ್ t ಮುಂದಿನ ಕಾಲಮ್ ಕೋಶದಿಂದ ಮೂಲ ಪಠ್ಯವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ವಿಳಾಸ, ಮತ್ತು ವೇರಿಯೇಬಲ್‌ಗಳು n ಮತ್ತು z ಕಾಲಮ್‌ಗಳಲ್ಲಿನ ಮೊದಲ ಕೋಶಗಳಿಗೆ ಸೂಚಿಸುತ್ತವೆ ಹುಡುಕಲು и ಬದಲಿ, ಅನುಕ್ರಮವಾಗಿ.
ಹಿಂದಿನ ಉದಾಹರಣೆಯಂತೆ, ಈ ಕಾರ್ಯವು ಮೊದಲು ಮೂಲ ಪಠ್ಯವನ್ನು ಕಾರ್ಯದೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ ಬದಲಿ (ಬದಲಿ) ಡೈರೆಕ್ಟರಿಯ ಮೊದಲ ಸಾಲಿನಲ್ಲಿರುವ ಡೇಟಾ (ಅಂದರೆ ಎಸ್ಪಿಬಿon ಸೇಂಟ್ ಪೀಟರ್ಸ್ಬರ್ಗ್), ತದನಂತರ ತನ್ನನ್ನು ತಾನೇ ಕರೆದುಕೊಳ್ಳುತ್ತದೆ, ಆದರೆ ಮುಂದಿನ ಸಾಲಿಗೆ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಬದಲಾವಣೆಯೊಂದಿಗೆ (ಅಂದರೆ ಬದಲಾಯಿಸುತ್ತದೆ ಸೇಂಟ್ ಪೀಟರ್ಸ್ಬರ್ಗ್ on ಸೇಂಟ್ ಪೀಟರ್ಸ್ಬರ್ಗ್) ನಂತರ ಶಿಫ್ಟ್ ಡೌನ್‌ನೊಂದಿಗೆ ಮತ್ತೆ ಸ್ವತಃ ಕರೆ ಮಾಡುತ್ತದೆ - ಮತ್ತು ಈಗಾಗಲೇ ಬದಲಾಯಿಸುತ್ತದೆ ಪೀಟರ್ on ಸೇಂಟ್ ಪೀಟರ್ಸ್ಬರ್ಗ್ ಇತ್ಯಾದಿ

ಪ್ರತಿ ಪುನರಾವರ್ತನೆಯಲ್ಲಿ ಶಿಫ್ಟ್ ಡೌನ್ ಅನ್ನು ಪ್ರಮಾಣಿತ ಎಕ್ಸೆಲ್ ಕಾರ್ಯದಿಂದ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಡಿಸ್ಪೋಸಲ್ (OFFSET), ಈ ಸಂದರ್ಭದಲ್ಲಿ ಮೂರು ವಾದಗಳನ್ನು ಹೊಂದಿದೆ - ಮೂಲ ಶ್ರೇಣಿ, ಸಾಲು ಶಿಫ್ಟ್ (1) ಮತ್ತು ಕಾಲಮ್ ಶಿಫ್ಟ್ (0).

ಸರಿ, ನಾವು ಡೈರೆಕ್ಟರಿಯ ಅಂತ್ಯವನ್ನು ತಲುಪಿದ ತಕ್ಷಣ (n = ""), ನಾವು ಪುನರಾವರ್ತನೆಯನ್ನು ಕೊನೆಗೊಳಿಸಬೇಕು - ನಾವು ನಮ್ಮನ್ನು ಕರೆಯುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತೇವೆ ಮತ್ತು ಮೂಲ ಪಠ್ಯ ವೇರಿಯಬಲ್ t ನಲ್ಲಿ ಎಲ್ಲಾ ಬದಲಿಗಳ ನಂತರ ಸಂಗ್ರಹವಾದದ್ದನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತೇವೆ.

ಅಷ್ಟೇ. ಯಾವುದೇ ಟ್ರಿಕಿ ಮ್ಯಾಕ್ರೋಗಳು ಅಥವಾ ಪವರ್ ಕ್ವೆರಿ ಪ್ರಶ್ನೆಗಳಿಲ್ಲ - ಇಡೀ ಕಾರ್ಯವನ್ನು ಒಂದು ಕಾರ್ಯದಿಂದ ಪರಿಹರಿಸಲಾಗುತ್ತದೆ.

  • Excel ನ ಹೊಸ ಡೈನಾಮಿಕ್ ಅರೇ ಕಾರ್ಯಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು: ಫಿಲ್ಟರ್, SORT, UNIC
  • ಬದಲಿ ಕಾರ್ಯದೊಂದಿಗೆ ಪಠ್ಯವನ್ನು ಬದಲಾಯಿಸುವುದು ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸುವುದು
  • VBA ನಲ್ಲಿ ಮ್ಯಾಕ್ರೋಗಳು ಮತ್ತು ಬಳಕೆದಾರ-ವ್ಯಾಖ್ಯಾನಿತ ಕಾರ್ಯಗಳನ್ನು (UDFs) ರಚಿಸುವುದು

ಪ್ರತ್ಯುತ್ತರ ನೀಡಿ