The Scenario
You're an ETF analyst at a research firm. A client allocator asked for a comparison of 12 technology sector ETFs — top holdings, sector weights, and expense ratios — as part of a portfolio construction review. You have the fund tickers in column A of an Excel workbook. The deadline is end of day.
The last time you built this kind of report, you pulled data from three different sources, spent an hour normalizing formats, and still had a discrepancy in two expense ratios because one source rounds to two decimal places and another rounds to three.
The bad version:
- Navigate to the first ETF's fund page. Copy the top 10 holdings table — tickers and weights — into the workbook. The format is different on every fund provider's site, so you're reformatting each one.
- Go to a separate source for sector weights, which are on a different tab from holdings on most fund sites and formatted in a different column order.
- Look up expense ratios from a third source. Spend time reconciling the format differences.
Twelve funds, three sources each, two hours of format reconciliation. The analysis hasn't started.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your Excel workbook. It reads the 12 ETF tickers in column A and, through its built-in Twelve Data integration, fetches composition data for each fund and writes holdings and weights in a consistent layout.
Fetch ETF composition data from Twelve Data for each fund ticker in column A. Write the top 5 holdings with their names and weight percentages into columns B through K (holding name and weight percentage alternating, for each of the 5 holdings).
What You Get
- Five holding name/weight pairs across columns B through K for each ETF, all formatted consistently.
- Weights as percentage figures (e.g., 12.4 for 12.4%).
- ETFs with fewer than 5 disclosed holdings get actual holdings populated with remaining columns blank.
- Any ticker Twelve Data cannot resolve as an ETF flagged in column L.
What If the Data Is Not Quite Ready
If you want global ETF analytics metrics rather than holdings composition
Fetch global ETF analytics from Twelve Data for each fund ticker in column A. Write total assets in millions into column B, expense ratio into column C, YTD return into column D, 1-year return into column E, and Sharpe ratio into column F.
If you want to identify which individual stocks appear across the most ETFs in your comparison set
Fetch the top 10 holdings for each ETF in column A from Twelve Data. Write all holdings into a separate worksheet with ETF ticker in column A and holding name in column B. In the main worksheet, count how many of the 12 ETFs hold each unique security and write the overlap count in a summary column.
If you want to build a cost-adjusted return metric
Fetch expense ratio and 1-year return from Twelve Data for each ETF in column A. Write expense ratio into column B and 1-year return into column C. Calculate cost-adjusted return (1-year return minus expense ratio) into column D. Sort from highest to lowest cost-adjusted return.
Kill-chain: fetch holdings and analytics, calculate overlap, and flag concentrated funds
Fetch top 10 holdings from Twelve Data for each ETF in column A. Identify any holding appearing in 4 or more of the 12 ETFs and mark HIGH OVERLAP. Fetch expense ratio and 1-year return for each fund, write into columns B and C, calculate cost-adjusted return into column D. In column E, write HIGH CONCENTRATION if the top 5 holdings represent more than 40% of the fund, otherwise DIVERSIFIED.
Try It
Get the 7-day free trial of SheetXAI and open your ETF comparison workbook with fund tickers in column A, then ask it to populate holdings, metrics, and overlap flags in one pass before the client review. Also see adding a risk-metrics panel and the full Twelve Data overview.
