עבודה עם json באקסל
-
הצורך: טבלת מוצרים שעורכים אותה באקסל, וצריך גם להזין בעמודות 'קטגוריה' ו'תת קטגוריה'. והנתונים (של הקטגוריה ותת קטגוריה) צריכים להיות תואמים ומעודכנים למה שיש בשרת.
לכן:
- הנתונים אמורים להתקבל במבנה json.
- בעמודת קטגוריה הנתונים לבחירה יתקבלו מתוך בורר רשומות (אולי אקסס יותר קל, אבל ננסה כרגע באקסל כיון שהלקוח שלי עובד כרגע עם אקסל).
- שדה תת קטגוריה יהיה כמו שדה קטגוריה, אבל הוא גם חייב להיות מסונן לפי שדה קטגוריה.
את קבלת הנתונים מהשרת בjson עשיתי.
אני צריך כרגע בשלב ראשון:
א. איך אני מנתח json. חיפשתי הרבה ולא מצאתי משהו פשוט. (אם יש).
ב. האם יש אפשרות לעשות באקסל בורר רשומות בשביל זה?הגיוני כל הנ"ל או זה כבר מעל הרמה של אקסל?
תודה.
-
@chagold כתב בעבודה עם json באקסל:
א. https://github.com/VBA-tools/VBA-JSON סתם מגוגל, אני לא זוכר במה העולם משתמש אבל כנראה זה לא סתם תוצאה גבוהה בגוגל
ב. כן, ראה פה בשביל החלק של התלות בין הבחירה של הקטגוריה לתת הקטגוריה
https://www.contextures.com/xldataval02.html -
@dovid תודה על המראי מקומות.
בנוגע לשאלה השניה -
אני נמצא בשלב הזה. הוא מציג פונקציה
INDIRECT
שמכניסים לשם את ID השדה ששם עושים את השינויים.
השאלה, שכיון שבמקרה שלי כל רשומת תת קטגוריה צריכה להיות ל'קטגוריה' שבעמודה שלה, א"כ אני צריך שהINDIRECT יתן את הסינון לפי תיבת 'קטגוריה' שבשורה הנוכחית? איך את הדינמיות הזו אני מכניס בINDIRECT? -
@chagold אני לא יודע לענות לך, אני לא מבין באקסל מספיק ולא הצלחתי להבין איך זה עובד כ"כ יפה, אבל הוא עושה שמה בדיוק בדיוק מה שאתה עושה. עמודת תת קטגוריה.
תראה את האקסל לדוגמה שלהם, הדוגמה בפועל נמצאת בגיליון DataEntry. אם אתה בוחר בעמודה הראשונה Fruit אתה מקבל ברשימה בעמודה השניה רק פירות. -
@chagold כתב בעבודה עם json באקסל:
הוא מציג פונקציה INDIRECT שמכניסים לשם את ID השדה ששם עושים את השינויים.
זה לא מדוייק, INDIRECT מחזיר ערך של תא/תאים בהינתן הפניה שלהם כטקסט.
אז השלבים שלו הם כאלה:
א. להכין רשימות של כל אפשרות בגילין נפרד לשם הנוחות.
ב. בגיליון הרשימות הללו, לקרוא לטווח התאים של תת הרשימות בשם של אבא שלהם.
למשל אם יש לך רשימת מוצרים זה האב, ולקטגוריה פירות יש תת רשימה עם פירות, לקרוא לטווח התאים שמכיל את רשימת הפירות "פירות". קריאת שם לטווח נעשית ע"י הקלדת השם בתיבה הימנית לשורת הנוסחאות, כאשר הטווח בחור.
ג. באימות נתונים של התא שמכיל רשימה ראשית לתת מקור את השם של הטווח הראשי (רשימת המוצרים)
ד. באימות נתונים של התא שבו רוצים שתיפתח תת הרשימה לתת את הפונקציה =INDIRECT כשהפרמטר הוא התא של סעיף ג.כעת אם בתא של סעיך ג בוחרים ב"פירות", אז הINDIRECT מחזיר את רשימת התאים שהשם שלהם הוא "פירות", וממילא הם משמשים למקור הרשימה.
-